多个参数(列行)REST API

时间:2016-09-23 09:00:55

标签: c# .net rest serialization

我正在为我的雇主研究RESTful API服务的概念,但发现自己有点卡住了。

我已经开始处理GET请求,从视图中获取所有数据并根据参数(id)获取一些数据。但是,由于存储过程具有 TONNE 字段(140列),我对如何处理任何在其查询中具有相同行数的插入/更新语句感到有些不知所措。 / p>

我一直在寻找处理多个参数的解决方案,但我没有看到每行使用“?param = args”的好处。有没有办法通过传入对象或类似的东西使URL看起来稍微格式化?如果是这样,您将如何进行(压力)测试?

任何建议和意见将不胜感激! :)

1 个答案:

答案 0 :(得分:0)

在请求正文中传递数据的示例:

创建您的身体内容:

var example = "Hello World";

Dictionary<string, string> pairs = new Dictionary<string, string>();
pairs.Add("ExampleData", example);

var formContent = new FormUrlEncodedContent(pairs);
var response = await PostAsync(YourRouteToRestApi, formContent);

Post方法看起来像这样:

public async Task<string> PostAsync(string apiCall, HttpContent data)
{
   var client = new HttpClient();
   try
   {
      var response = await client.PostAsync(apiCAll, data);
      return await response.Content.ReadAsStringAsync();
   }
   catch (Exception ex)
   {
      // do something
   }
}

现在你有一个干净的网址,没有数百?param=args

如果可以将所有参数封装到对象中,或者创建一个保存参数的Collection(例如 Souvik Ghosh 建议)。您可以使用PosAsync方法而不是Dictionary数据传递此对象或集合 因此HttpClient将处理Json序列化。

在您的WebApi中,您将获得以下数据:

public void Post([FromBody]YourObject stuff)
{
    // do something
}