я должен выставить производное поле в API? - PullRequest
0 голосов
/ 21 февраля 2019

Предположим, у меня есть схемы, определенные в поле - id, а значение выглядит как - 1234.Теперь почти в каждой ситуации клиенты должны будут создать URL-адрес - например, https://<server>/<path>/receipt/<id>.

. Я нахожусь в дилемме - должен ли я выставить поле URL-адреса или клиент должен создать его в конце, используя идентификатор?

1 Ответ

0 голосов
/ 21 февраля 2019

Я бы сказал да в данном конкретном случае, но это зависит.Вот некоторые вещи, которые следует учитывать:

Причины предоставления вычисляемого поля:

  • Сохранение бизнес-логики скрытой от клиента.Часто мы не хотим раскрывать одно или несколько полей, используемых для определения вычисленного значения, или не хотим, чтобы клиент (или конечный пользователь) знал, какие поля были использованы.

  • Обеспечение того, что клиент не зависит от бизнес-логики.Если бизнес-правила изменяются, это влияет только на код сервера.

  • Сокращение дублирования кода.Код должен быть написан только один раз на сервере, даже если есть несколько приложений, использующих API.

Причины не предоставлять вычисляемое поле:

  • Расчетное значение относится к деталям реализации клиентского приложения, а не к бизнес-правилам.Например, это, вероятно, не место сервера для возврата маршрутов, используемых внутри клиентского приложения.

  • Способ вычисления значения зависит от контекста, и определить его невозможно или практически невозможноконтекстная сторона сервера.Предоставление контекстно-зависимых полей внутри других контекстно-независимых типов также может вызвать головную боль в отношении кэширования.

...