Работа с REST API с Play Framework.Play Framework: как связать сложный запрос REST с методом контроллера
У меня есть требование о поддержке запроса RESTful, содержащего «заказ» с несколькими «позициями».
С точки зрения «данные POST», я вижу, что нравится: (разделить на нескольких линиях для ясности)
OrderId=123&OrderType=regular&
ItemNum=1&ItemID=78&quantity=2&discount=20&
ItemNum=2&ItemID=70&quantity=1&
ItemNum=3&ItemID=75&quantity=1&discount=10
Обратите внимание, что у меня есть вопрос, требовать все «позиции», чтобы прийти с полным набором данных. В приведенном выше примере 2-й элемент не имеет скидок. Поскольку я не могу «заставить» разработчиков использовать API для работы с моей собственной «оберткой», я хочу оставить некоторую гибкость.
Я хотел бы, чтобы отобразить его на что-то вроде:
метод (INT OrderId, струнный OrderType, пункт [] элементы)
Однако мне не удалось найти что-то подходящее в документации.
Каков правильный путь? Должен ли я создать собственный парсер данных запроса HTTP? Любой альтернативный способ форматирования данных POST - при условии соблюдения правил REST - также является приемлемым.
Благодаря Макс
К сожалению, я не смог заставить его работать. Я пытался определить класс «Предмет» с открытыми членами «int»: ItemNum, ItemID, количество, скидка. Тогда сигнатура метода была (int orderID, String orderType, Item [] items). Каждый раз, когда я вызываю метод через запрос POST, массив «items» имеет значение «null». Что-то пропустило? Любой намек на отладку? Спасибо – Max
это должно быть 'items [0]' not 'item [0]' и т. Д. Если это не удается, вам, возможно, придется создать настраиваемое связующее. – Codemwnci
Получил это, чтобы работать с элементами []! Я ценю вашу помощь! Максимум – Max