Объект Resource

Все дерево Apipie состоит из объектов resource.

Apipie почти не содержит какую-либо логику для обработки метода, но обрабатывает url через path-to-regexp, а дальше он просто передает эти параметры в axios.

{
    name: 'foo',
    options: {},
    meta: { auth: true },
    hooks: [
        async (ctx, next) => {
            if (ctx.meta.auth) {
                // do magic
            }

            await next()
        }
    ],
    data: true,
    query: true,
    children: [ resource1, resource2 ]
}

Свойства объекта resource

  • name

    • тип: string

      Имя ресурса, обязательное свойство. По нему определяется, как будет называется функция для вызова.

  • options

    • тип: Object

    Объект конфига для axios. Более подробную информацию можно получить здесь: https://github.com/mzabriskie/axios#request-config. Apipie дополнительно обрабатывает url через path-to-regexp.

  • meta

    • тип: Object

    Объект с мета информацией, которая будет доступна хукам (hook). Данный мета объект передается по наследству, если у родителя есть какая-та мета информация, она так же будет доступна у ребенка.

  • hook

    • тип: Array<Async Function | Promise>

    Хуки описываются точно так же как и в koa-middleware. Однако стоит отметить несколько отличий:

    • context состоит изmeta,response,options
    • хуки исполняются в виде цепочки промисов (Promise chaining), а это значит, что каждый хук ДОЛЖЕН возвращать промис (используйте async/await для этого)

    Хуки выполняются до и после передачи в axios

const hook = async (context, next) => {
    context.response // -> null
    await next();
    context.response // -> { data: ... }
}
  • data

    • тип: Boolean

    Свойство, которое определяет, является ли передача data при вызове ресурса обязательным.

  • query

    • тип: Boolean

    Тоже самое, что и data, только для query параметров.

  • children

    • тип: Array<Resource>

    Массив с ресурсами

results matching ""

    No results matching ""