2013-02-19 3 views
0

Я создаю веб-сервис с использованием WebAPI ASP.NET.Какие еще HTTP-методы помимо POST, PUT, DELETE, GET

Кажется, что имя метода в ApiController отображается на Uri.

Е.Г., PutProducts добавить продукты

Что делать, если я хочу метод, который выполняет сказать .. пакетный файл .. как ExecuteProcess1();

Это не должно возвращать никакой ценности какого-либо бизнеса. Это просто для клиентов, чтобы стрелять по своему усмотрению, где это будет соответствовать моему веб-сервису? Каким должен быть метод?

ответ

1

Если метод изменяет состояние на вашем сервере (например, обновление записей в базе данных, запись в файлы, ...), вы должны использовать HTTP-протокол POST. В зависимости от ресурса, что этот метод модификации вы можете иметь соответствующий контроллер API:

public class SomeResourceController: Controller 
{ 
    public void Post() 
    { 
     ... do the processing here 
    } 
} 

Очевидно, что вы будете заменить SomeResource во имя этого контроллера с ресурсом вы манипулировали (продукты, заказы, Люди, ...).

+0

Значит, это не будет частью ApiController? –

+0

Конечно, это будет часть 'ApiController'. Все действия должны быть частью какого-либо контроллера. Вам просто нужно выбрать собственное имя для своего ресурса. Это будет зависеть от типа информации, которую вы манипулируете на своем сервере. –

+0

, что технически не верно. PUT и DELETE также изменяют определенное состояние на сервере. – Aliostad

0

Вы можете использовать POST или GET, это зависит от того, что вы пытаетесь обновить. Но в этом случае вы должны использовать обычный контроллер mvc и действие. WebApi или нет, они все равно являются HTTP-запросами.

0

Если вы рассматриваете процесс как ресурс, тогда в идеале вы будете делать POST [при условии, что вы отправляете имя процесса] еще GET с соответствующими параметрами запроса, необходимыми для успешного выполнения процесса.

Еще лучше способ POST для начала процесса, GET, чтобы увидеть состояние процесса, как полный, в-прогресс и т.д.

2

Просто вы можете использовать любой HTTP глагол, который вы хотите сделать его работу. Но, следуя лучшей практике, используемой REST Api, простая концепция:

  1. GET: вытащите ресурс из службы REST без изменения состояния сервера.
  2. POST: создать новый ресурс.
  3. PUT: Обновить ресурс.
  4. УДАЛИТЬ: удалить ресурс.

Поэтому:

  1. Если ваш метод: ExecuteProcess запустить процесс, который создает что-то на сервере, используйте POST.
  2. Если он что-то обновляет на сервере, используйте PUT.
  3. Если он удаляет что-либо на сервере, используйте DELETE.