2013-09-26 3 views
27

Я использую ASP.NET Web API 2 с маршрутизацией атрибутов.Web API 2 Моделирование запроса POST в POSTMAN Rest Client

У меня есть PlayerModel.

public class PlayerModel 
{ 
    public int Id { get; set; } 
    public string Key { get; set; } 
    public string Name { get; set; } 
    public string Password { get; set; } 
    public int TeamId { get; set; } 
    public PlayerStatModel Stat{ get; set; } 
} 


public class PlayerStatModel 
{ 
    public int PlayerId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Title { get; set; } 
    public string EmailAddress { get; set; } 
    public IEnumerable<PhoneNumberModel> PhoneNumbers { get; set; } 
    public int TeamId { get; set; } 
} 

public class PhoneNumberModel 
{ 
    public string Value { get; set; } 
    public string Extension { get; set; } 
} 

Который в свою очередь, передается в PostPlayer для создания игрока.

[HttpPost("", RouteName = "PostPlayer")] 
public PlayerModel PostPlayer(PlayerModel player) 
{ 
    var playerObject = this.GetObject(player)); 
    this._manager.CreatePlayer(playerObject); 

    return this.GetPlayer(playerObject.Id); 
} 

Мои интеграционные тесты проходят, и я могу подтвердить, что игрок действительно создается, когда CreatePlayer вызывается.

Как я могу моделировать этот запрос POST в клиенте клиента POSTMAN в Google Chrome?

enter image description here

ответ

64

Ну, убедитесь, что вы указываете raw и установить хедер Content-Type запрос на application/json. А потом идти вперед и указать тело запроса POST, который будет соответствовать вашей структуре вид модели:

{ 
    "id": 1, 
    "key": "some key", 
    "name": "some name of course", 
    "password": "the hyper secret", 
    "teamId": 256, 
    "stat": { 
     "playerId": 115, 
     "firstName": "John", 
     "lastName": "Smith", 
     "title": "His Royal Majesty", 
     "emailAddress": "[email protected]", 
     "phoneNumbers": [ 
      { "value": "123", "extension": "05" }, 
      { "value": "456", "extension": "45" } 
     ], 
     "teamId": 678 
    } 
} 

Так буду вашей фактической полезной нагрузки в выглядеть на уровне протокола:

POST /NFL/Players HTTP/1.1 
Host: localhost:9888 
Content-Type: application/json 
Content-Length: 582 

{ 
    "id": 1, 
    "key": "some key", 
    "name": "some name of course", 
    "password": "the hyper secret", 
    "teamId": 256, 
    "stat": { 
     "playerId": 115, 
     "firstName": "John", 
     "lastName": "Smith", 
     "title": "His Royal Majesty", 
     "emailAddress": "[email protected]", 
     "phoneNumbers": [ 
      { "value": "123", "extension": "05" }, 
      { "value": "456", "extension": "45" } 
     ], 
     "teamId": 678 
    } 
} 
+0

вы можете объяснить его дальше Я столкнулся с небольшой проблемой. – NomanJaved

+1

В ядре ASP.net добавьте тег [FromBody] перед параметром. – Prageeth

Смежные вопросы