Лучшая практика C# REST API - PullRequest
0 голосов
/ 13 февраля 2020

Мы разрабатываем REST API и разрешаем все четыре стандартных глагола. В случае POST / PUT, что лучше в лучшей практике c# rest api.

это моя модель

public class UserModel
{
    public Int64 ID { get; set; }
    [Display(Name ="First Name")]
    public string FirstName { get; set; }
    [Display(Name="Last Name")]
    public string LastName { get; set; }
    public string Address { get; set; }
    [Display(Name="User Name")]
    public string UserName { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    [Display(Name ="Added Date")]
    public DateTime AddedDate { get; set; }
}

Пример 1

[HttpPost]
public ActionResult CreateEditUser(UserModel model)
{
    if (model.ID == 0)
    {
        User userEntity = new User
        {
           //....
         }
   }
}

Пример 2

[HttpPost]
public ActionResult CreateEditUser(int id,UserModel model)
{
    if (id == 0)
    {
        User userEntity = new User
        {
            //.....
         }
     }
 }

что лучше Пример 1 или Пример 2

1 Ответ

1 голос
/ 13 февраля 2020

В соответствии с рекомендациями REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md)

PUT : заменить объект или создать именованный объект, если применимо

POST : создать новый объект на основе предоставленных данных или отправить команду

PATCH : применить частичное обновление к объекту

В вашем случае лучше разбить конечные точки на POST и PUT .

[HttpPost]
public ActionResult CreateUser(UserModel model) 
{
    userService.Create(model);
    return...
}

[HttpPut]
public ActionResult EditUser(UserModel model)
{
    userService.Update(model);
    return...
}
...