Я довольно новичок в REST, но я думаю, что здесь вы бы использовали «POST» с телом запроса, содержащим данные, необходимые для создания «Teen», в любом формате, который вы используете, обычно в JSON или XML,Здесь я не уверен, относитесь ли вы к подросткам как к личностям с дополнительными свойствами, или подросток моделируется как само существо:
<person login="abc" email="abc@foo.com">
<person-property-1>value1</person-property-1>
<person-property-2>value2</person-property-2>
<teen>
<teen-property-1>value3</teen-property-1>
<teen-property-2>value4</teen-property-2>
</teen>
</person>
или
<teen login="abc" email="abc@foo.com">
<person-property-1>value1</person-property-1>
<person-property-2>value2</person-property-2>
<teen-property-1>value3</teen-property-1>
<teen-property-2>value4</teen-property-2>
</teen>
Что касается URI,Я считаю, что сегменты должны быть существительными, а не глаголами, поскольку URI должен адресовать ресурс, поэтому /api/teens
, а не /api/InsertTeen
.
/api/teens
с HTTP GET вернет список всех подросткови /api/teens
с HTTP POST вставит новый Teen.Чтобы завершить операции CRUD, /api/teens/{id}
с использованием HTTP GET вернет определенного Teen, /api/teens/{id}
с HTTP PUT обновит Teen, используя значения, переданные в теле запроса, а /api/teens/{id}
, вызванный с помощью HTTP DELETE, удалитуказанный подросток.
Редактировать
Перечитайте ваш вопрос еще раз, и я могу неправильно понять.Если вы не относитесь к «подросткам» как к ресурсам, а только к «людям», то я бы рассмотрел /api/people
с HTTP POST и, в зависимости от значений, передаваемых в теле запроса, делал все, что нужно для хранения.тот человек'.Итак, если запрос содержал значения «teen», вызовите вашу хранимую процедуру, которая создает «Teen» и возвращает «Person».
HTH