Как разместить разные типы в одной коллекции - PullRequest
0 голосов
/ 13 марта 2019

Скажем, у меня есть коллекция очков: GET /points. Точечные данные отправляются в теле (в реальной жизни это не точка, а нечто довольно большое, 100+ КБ).

Точка может быть определена как JSON (например, { "x": "0", "y": "1" } и как двоичные данные (например, 00 00 00 00 01 00 00 00). Но они, по сути, определяют одно и то же, оказываются в одном хранилище и могут быть удалены из одного и того же хранилища. формат.

Каковы мои варианты определения POST API?

  1. Я могу определить две разные конечные точки: /points/json и /points/bin. Разделенные конечные точки получают хорошую документацию Swagger (они имеют другое описание основных данных), но они выглядят иначе, чем GET API:
GET /points
GET /points/{id}
DELETE /points/{id}
POST /points/json
POST /points/bin
  1. Я могу определить одну и ту же конечную точку и дифференцировать по параметру запроса: /points?type=json и /points?type=bin. Это выглядит лучше, но я изо всех сил стараюсь правильно указать маршрутизацию и документировать эту конечную точку.

Кто-нибудь из вас, ребята, имеет какое-либо мнение по этому вопросу?

ОБНОВЛЕНО

  1. Я наткнулся на другую возможность - использовать заголовок Content-Type. Это будет держать тот же URL, так что звучит правдоподобно. Но как насчет документации Swashbuckle / Swagger? Как я могу сказать ему генерировать документацию, основанную на значении заголовка Content-Type?
...