2013-09-26 12 views
27

Ich benutze ASP.NET Web API 2 mit Attribut-Routing.Web API 2 POST Anfrage Simulation in POSTMAN Rest Client

Ich habe folgende 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; } 
} 

, der wiederum in PostPlayer für Spieler-Erstellung übergeben.

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

    return this.GetPlayer(playerObject.Id); 
} 

Meine Integrationstests passieren und ich bin in der Lage, dass die Spieler zu überprüfen, ob tatsächlich erstellt, wenn CreatePlayer aufgerufen wird.

Wie kann ich diese POST Anfrage im POSTMAN Rest Client in Google Chrome modellieren?

enter image description here

Antwort

64

Nun, stellen Sie sicher, dass Sie raw angeben und stellen Sie die Content-Type Request-Header zu application/json. Und dann gehen Sie vor und um den Körper des POST-Anfrage an, die Ihrer Ansicht nach Modellstruktur übereinstimmen:

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

So Ihre tatsächliche Nutzlast, das geht auf Protokollebene so aussehen:

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

können Sie es erklären weiter Ich stehe vor einem kleinen Problem. – NomanJaved

+1

In ASP.net Kern hinzufügen [FromBody] -Tag vor dem Parameter. – Prageeth

Verwandte Themen