2013-09-26 18 views
27

Używam ASP.NET Web API 2 z routingiem atrybutów.Web API 2 symulacja żądania POST w POSTMAN Rest Client

Mam następujące 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; } 
} 

Która z kolei jest przekazywana do PostPlayer w celu utworzenia odtwarzacza.

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

    return this.GetPlayer(playerObject.Id); 
} 

Moi przechodzą testy integracyjne i jestem w stanie sprawdzić, czy gracz jest rzeczywiście tworzone, gdy CreatePlayer jest wywoływany.

Jak mogę modelować to żądanie POST w kliencie POSTMAN w przeglądarce Google Chrome?

enter image description here

Odpowiedz

64

Cóż, upewnij się, że podasz raw i ustawić nagłówek Content-Type zapytanie do application/json. A następnie iść do przodu i określić treści żądania POST, który będzie pasował do struktury widok modelu

{ 
    "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 
    } 
} 

więc rzeczywisty ładowność będzie wyglądać, że na poziomie protokołu:

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

można wyjaśnić dalsze mam mały problem. – NomanJaved

+1

W rdzeniu ASP.net dodaj przed tagiem [FromBody] parametru. – Prageeth