Как поручить REST API включить дополнительные данные для данного ресурса - PullRequest
0 голосов
/ 23 октября 2018

Я реализовал запрос GET следующим образом:

https://api.com/invoices?filter[status]=paid&include=client

Текущая ситуация : получать счета со статусом «оплачено» и включать данные клиента для каждогозапись счета-фактуры

Теперь я хотел бы поручить своему API включить дополнительные данные для каждой записи счета-фактуры.Эти дополнительные данные на самом деле не связаны с инвойсом.(например, запись в журнале последнего входа в систему клиента)

Желаемый : Каковы лучшие практики здесь?Какой параметр запроса мне следует добавить в соответствии с отраслевыми стандартами, чтобы поручить запросу включить эти дополнительные данные, поскольку я не хотел бы выполнять запрос для каждого счета-фактуры, чтобы получить последний логин для клиента

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Как настроить REST API для включения дополнительных данных для данного ресурса

Проверка орфографии;Что касается REST, вы не запрашиваете данный ресурс с дополнительными данными, вы запрашиваете другой ресурс.Нет особой причины, по которой этому новому ресурсу нужен идентификатор, связанный с существующим.

Каковы лучшие практики здесь?

Подумайте, как бы вы сделали это с веб-сайтом.

URI будет создан путем представления пользователю формы с элементами ввода, чтобы клиент мог указатьзначения в строке запроса.Другими словами, форма играет роль шаблона URI .

Таким образом, чтобы предоставить потребителю дополнительный элемент управления, вы должны включить в форму новый элемент управления вводом - это может быть поле со свободным текстом или что-то вроде элемента управления списком, который перечисляет конкретные возможные значения.

Какой параметр запроса я должен добавить в соответствии с отраслевыми стандартами

Есть несколько возможностей.

Вы можете просмотреть список Отношения связи IANA, чтобы увидеть, есть ли близкое совпадение.Технически, отношения ссылок не являются параметрами запроса.Но этот список соответствует сочетанию написания с семантикой , чего вы действительно хотите: существует ли общее понимание foobar, которое вы можете использовать для своих собственных нужд.

Другая возможностьэто искать в ресурсах вроде schema.org , в котором снова есть много интересных сопоставлений между орфографией и семантикой.

Я случайно понял, что EventStoreAPI использует embed с различными значениями, чтобы позволить клиенту указать, что он хочет получить доступ к ресурсам с более богатой информацией;но, насколько мне известно, этот выбор был произвольным, не основанным на каких-либо реальных «отраслевых стандартах».

0 голосов
/ 23 октября 2018

как насчет этого, пример:

// ваш код здесь

$ result;// ваша переменная, которая будет отправлена ​​вашим API

$ user = User :: all ();// ваш дополнительный запрос для включения в ваш API ответа

// пример дополнительных данных все данные пользователя $ result ['user'] = $ user;

...