Вы можете использовать JSON как часть данных запроса, так как OP указал, что все три параметра работают.
OP должен поддерживать ввод JSON, поскольку он должен поддерживать сложное структурное содержимое.Тем не менее, подумайте об этом следующим образом: вы делаете запрос на выполнение какого-либо действия или просто отправляете данные, которые в основном document , и вы просто используете операцию POST
в качестве эквивалента createновая запись.
В таком случае у вас есть в основном конечная точка ресурса с семантикой CRUDL.Следуя этому, вы на самом деле не ограничены application/json
, но любым типом, который должна обрабатывать конечная точка ресурса.
Для конечных точек, не связанных с ресурсами
Я считаю, что (специально для JAX-RS) application/x-www-urlencoded
лучше.
- Согласованность с OAuth 2.0 и OpenID Connect, они используют
application/x-www-urlencoded
. - Легче комментировать отдельные поля с помощью аннотаций Swagger
- Swagger предоставляет больше значений по умолчанию.
- Почтальон генерирует удобную форму для заполнения и упрощает тестирование.
Примеры конечных точек, не связанных с ресурсами:
- Аутентификация
- Авторизация
- Простой поиск (хотя я бы использовал
GET
на этом) - Не простой поиск, где многокритерии
- Отправка сообщения / документа (хотя я бы также рассмотрел
multipart/form-data
, чтобы я мог передавать метаданные вместе с контентом, но у JAX-RS нет стандарта для этого Джерси, а у RestEasy есть свои собственныеimplementatioнс)