Creating POST method in Web API

36,442

Solution 1

You need to create an object in web API project with Activity, CustomValue, PropertyIndex properties:

  public class MyTestClass
  {
      public string Activity { get; set; }
      public string CustomValue { get; set; }
      public string PropertyIndex { get; set; }
  }

and HttpPost will be:

  [HttpPost]
  public HttpResponseMessage Post(MyTestClass class)
  {
      // Save Code will be here
      return new HttpResponseMessage(HttpStatusCode.OK);
  }     

Solution 2

Product class should have Activity, CustomValue and PropertyIndex properties to get bind with posted data.

[HttpPost]
[ActionName("alias_for_action")]
public HttpResponseMessage PostProduct([FromBody] Product item)
{

   //your code here

   var response = new HttpResponseMessage(HttpStatusCode.Created)
   {
       Content = new StringContent("Your Result")
   };

   return response;
}

Yes if you want to update two tables in database using Entity Framework then you have to execute two insert operations.

Share:
36,442
GVillani82
Author by

GVillani82

Passionate about mobile development, clean code and reactive programming

Updated on July 05, 2022

Comments

  • GVillani82
    GVillani82 almost 2 years

    I'm developing a web service, using WEB .API. I'm following the example, which include:

    public HttpResponseMessage PostProduct(Product item)
    {
        item = repository.Add(item);
        var response = Request.CreateResponse<Product>(HttpStatusCode.Created, item);
    
        string uri = Url.Link("DefaultApi", new { id = item.Id });
        response.Headers.Location = new Uri(uri);
        return response;
    }
    

    for creating a POST method, allowing a client to send data in POST in ordert to insert these data in the database (I'm using Entity Framework).

    What I want do, however, is slightly difference, since the data I want pass in post to the web service are not associated to any object of database: I have some data that should be write in more then one table. For example:

    {"activity":"sport","customValue":"22","propertyIndex":"122-x"}
    

    The activty value (sport) should be writed on one table, while the others two parameters (customValue e properyIndex) shouldbe writed on another table.

    So I think I need to parse the json file received in POST and then execute the two insert operation.

    How can I perform this task?