Ви можете надсилати файл і дані в одному запиті, використовуючи тип вмісту мультичасткових / форм-даних :
У багатьох додатках користувачеві може бути представлена форма. Користувач заповнить форму, включаючи інформацію, яка вводиться, генерується за допомогою введення користувача або включається з файлів, обраних користувачем. Коли форма заповнена, дані з форми надсилаються від користувача до приймаючої програми.
Визначення MultiPart / Form-Data походить від одного з цих застосунків ...
Від http://www.faqs.org/rfcs/rfc2388.html :
"multipart / form-data" містить ряд частин. Очікується, що кожна частина містить заголовок вмісту-диспозиції [RFC 2183], де тип диспозиції - "форма даних", а де диспозиція містить (додатковий) параметр "ім'я", де значення цього параметра є вихідним назва поля у формі. Наприклад, частина може містити заголовок:
Зміст-диспозиція: форми-дані; name = "користувач"
зі значенням, що відповідає запису поля "користувач".
Ви можете включати інформацію про файл або інформацію про поле в кожному розділі між межами. Я успішно реалізував послугу RESTful, яка вимагала від користувача подання як даних, так і форми, а дані з кількох деталей / форм працювали прекрасно. Служба була побудована за допомогою Java / Spring, і клієнт використовував C #, тому, на жаль, у мене немає прикладів Grails, які б вам дали інформацію про те, як налаштувати службу. У цьому випадку вам не потрібно використовувати JSON, оскільки кожен розділ "форми даних" надає вам місце для вказівки назви параметра та його значення.
Хороша річ у використанні мультичасткових / форм-даних - це те, що ви використовуєте заголовки, визначені HTTP, тому ви дотримуєтесь філософії REST щодо використання існуючих інструментів HTTP для створення вашої послуги.