Объект params
Может передаваться при вызове функции ресурса.
{
params,
query,
data,
url,
hooks
}
Свойства объекта params
params
- тип:
Object
Те переменные и их значения, что будут подставлены в путь.
- тип:
// resource profile
const resource = {
name: 'profile'
get: '/profile/:id'
}
api.profile({ params: { id: 5 } }) // /profile/5
query
- тип:
Object
Объект с query параметрами, который будет преобразован в querystring средствами
axios
- тип:
api.profile({ query: { name: 'Foo', age: 25 } }) // /profile?name=Foo&age=25
- data
- тип:
Object | FormData
- тип:
Объект с данными или FormData
которые нужно передать вместе с запросом. Подробней в документации axios https://github.com/mzabriskie/axios#request-config
url
- тип:
string
Строка url которая будет распарсена на данные, если пути совпадают. Подробней чуть дальше.
- тип:
hooks
- тип:
Array<Async Fuction | Promise>
Массив хуков который выполнится при запросе.
- тип:
Свойство url
Часто при использовании крупных фреймворков и их встроенной пагинации, фреймворк при передачи данных для страницы отдает еще ссылки на следующую страницу и предыдущую в таком виде.
{
nextPage: 'http://site.com/api/v1/profiles?page=3&limit=10',
prevPage: 'http://site.com/api/v1/profiles?page=1&limit=10',
data: { ... } //
}
И чтоб каждый раз не разбирать строку самому, можно передать весь url в нужный ресурс и apipie сам ее разберет и вызовет с параметрами в ней.
// resource foo
const foo = {
name: 'foo',
get: 'api/v1/foo/:id'
}
api.foo({
url: 'http://site.com/api/v1/foo/5?page=3&limit=10'
}) // { params: 5, query: { page: '3', limit: '10' } }
Если совпадаения путей не будет, то apipie сообщит об ошибке.
api.foo({
url: 'api/v1/foo/5'
}) // ok
api.foo({
url: 'api/v1/bar/5'
})
// Error Mismatch the path or not enough params for this url: api/v1/foo/:id. Received this api/v1/bar/5