Скажем, у меня есть коллекция очков: GET /points
. Точечные данные отправляются в теле (в реальной жизни это не точка, а нечто довольно большое, 100+ КБ).
Точка может быть определена как JSON (например, { "x": "0", "y": "1" }
и как двоичные данные (например, 00 00 00 00 01 00 00 00
). Но они, по сути, определяют одно и то же, оказываются в одном хранилище и могут быть удалены из одного и того же хранилища. формат.
Каковы мои варианты определения POST
API?
- Я могу определить две разные конечные точки:
/points/json
и /points/bin
. Разделенные конечные точки получают хорошую документацию Swagger (они имеют другое описание основных данных), но они выглядят иначе, чем GET
API:
GET /points
GET /points/{id}
DELETE /points/{id}
POST /points/json
POST /points/bin
- Я могу определить одну и ту же конечную точку и дифференцировать по параметру запроса:
/points?type=json
и /points?type=bin
. Это выглядит лучше, но я изо всех сил стараюсь правильно указать маршрутизацию и документировать эту конечную точку.
Кто-нибудь из вас, ребята, имеет какое-либо мнение по этому вопросу?
ОБНОВЛЕНО
- Я наткнулся на другую возможность - использовать заголовок
Content-Type
. Это будет держать тот же URL, так что звучит правдоподобно. Но как насчет документации Swashbuckle / Swagger? Как я могу сказать ему генерировать документацию, основанную на значении заголовка Content-Type
?