Запись данных в базу данных с использованием полностью веб-службы REST

Как создать веб-сервис REST для записи строки в таблицу базы данных. Используйте следующий сценарий:

Таблица называется Customer - данные, которые будут вставлены в строку, будут содержать имя, адреса, номер телефона, адрес электронной почты.

Я думаю, что невозможно описать все целиком и полностью в Java или C #, и я бы никогда этого не ожидал, но вот вопросы, которые у меня возникают, когда я готовлюсь к кодированию:

  • Как будет выглядеть URI (например, если вы используете этот URL - http://www.example.com/ )?
  • Какая информация попадет в HTTP-конверт?
  • Буду ли я использовать POST при записи в базу данных таким образом?
  • Использую ли я ресурс для хранения опубликованных данных от клиента? Это даже необходимо, если данные в любом случае записываются в базу данных?
  • Когда данные, которые должны быть записаны в базу данных, получены сервером - как мне физически вставить их в базу данных - я вызываю какой-нибудь метод на сервере для фактической записи данных (в Java)? - это, кажется, не соответствует истинно архитектуре REST - избегая вызовов RPC.
  • Должен ли я вообще беспокоиться о записи в БД - хранить ли мои данные как ресурс?

Как видите, мне нужно прояснить несколько вопросов. Любая помощь высоко ценится.

10.12.2008 11:22:31
2 ОТВЕТА
РЕШЕНИЕ

Прежде всего, я не являюсь ни Java, ни экспертом по C #, и я точно не знаю, что означают эти языки для поддержки дизайна REST, но в целом:

  1. http://www.example.com/customers - клиенты - это коллекция ресурсов, и вы хотите добавить новый ресурс в эту коллекцию.

  2. Это зависит от разных вещей - вам, вероятно, следует установить заголовок типа контента (в соответствии с форматом данных, в котором вы отправляете представление) и установить некоторые заголовки аутентификации, если вам это нужно.

  3. Да, вы всегда используете POST для создания новой записи в коллекции ресурсов.

  4. Я не совсем понимаю этот вопрос, если честно. Что вы подразумеваете под «немедленной записью данных в базу данных»?

  5. REST - это прежде всего просто стиль общения между сервером и клиентом. Это ничего не говорит о том, как вы должны обрабатывать данные, полученные с его помощью. Обычный способ, которым современные веб-подходы (фреймворки в стиле MVC) решают эту проблему, заключается в маршрутизации каждого действия REST методу некоторого класса (обычно экземпляра контроллера), где вы обрабатываете полученные параметры (например, сохраняете их в базе данных) и генерируете ответ будет отправлен обратно.

Для краткого и ясного знакомства с REST посмотрите это короткое видео .

5
7.01.2014 15:03:17
+1 Я был наполовину в процессе написания чего-то очень похожего, но вы печатаете быстрее :)
The Archetypal Paul 10.12.2008 12:01:55
Бывает со мной иногда. Надеюсь, вы не слишком далеко зашли в письменной форме. Я извиняюсь :)
Milan Novota 10.12.2008 12:03:46

Похоже, что веб-службы RESTful , опубликованные O'Reilly and Associates, отвечают вашим требованиям.

Что касается Java, у Sun есть страница .

3
10.12.2008 11:39:11
У меня есть эта книга сейчас - (ну, на самом деле, несколько месяцев назад) - и она довольно важна для чтения, если читать немного. Глядя на мой оригинальный вопрос - я действительно не имел ни малейшего представления о веб-сервисе RESTful - удивился, что на самом деле сформулировал полусвязанный вопрос!
Vidar 4.06.2009 13:10:48