#c# #wcf #api #rest
#c# #wcf #API #rest
Вопрос:
При разработке службы WCF REST, использующей JSON в качестве формата обмена сообщениями, лучше всего передавать сериализованные объекты JSON в службу WCF или JSON, содержащие пары значений параметров?
Другими словами, какая сигнатура метода была бы лучшей:
public void CreateUser(User user);
или
public void CreateUser(string userName, string firstName, string lastName, string email, string password);
Пользовательский объект будет содержать свойства для имени пользователя, имени, фамилии, электронной почты и пароля.
Мне кажется, что для потребителя было бы проще использовать более позднюю подпись, потому что это снимает вопрос о том, что на самом деле должен содержать пользовательский объект.
Верны ли мои мысли?
Ответ №1:
На самом деле — я ожидал бы, что REST-ful API создаст пользователя, который будет выглядеть как HTTP POST, например
http://myhostname/users/
где тело запроса содержит поля, необходимые для создания нового пользовательского объекта.
Затем веб-служба создаст объект, сохранит его и вернет URI объекту, чтобы разрешить его последующее извлечение. Например, здесь это может возвращать
http://myhostname/users/DanWaterbly
Потребителю гораздо проще использовать такой подход, поскольку правильно написанный десериализатор будет терпим к дополнительным или отсутствующим элементам в пользовательском объекте.
Комментарии:
1. Я тоже голосую за этот подход. Это более чистый и многоразовый дизайн, который инкапсулирует то, с чем вы работаете, вместо того, чтобы работать с набором пар ключ / значение.