0

我正在设计一个 REST API 我的资源之一就是要从用户端获取一些基本数据。

这里有两点我需要提到:

  1. 所有用户的信息都需要通过一个 http 请求发送到服务器端
  2. 用户的信息大约有 30 个不同的字段。

所以我认为在服务器端有一个长长的参数列表并不是那么好,我想用一个接受 JSON 的参数替换这部分。

你认为这样做是否正确?

4

1 回答 1

1

是的。您需要将方法更改为 POST 而不是 GET,并在请求正文中发送 JSON 格式的数据。

使用 C# 语法的示例:

假设您有一个返回名为 ObjectList 的对象的方法,并且为了生成列表,您的构造函数需要一个 ObjectListRequest 对象 -

public ObjectList GetObjectList(ObjectListRequest request)
{
    return new ObjectList(request)
}

您的 ObjectListRequest 类可能包含请求将使用的各种不同参数 -

public class ObjectListRequest
{
    public string SearchText { get; set; }
    public string CreatedBy { get; set; }
    public int SequenceStartRange { get; set; }
    public int SequenceEndRange { get; set; }
    public bool HasMetaData { get; set; }
}

现在要在正文中使用带有 JSON 的 POST 调用此方法,您将发送以下内容

Method:   POST
Url:      http://your.service.com/GetObjectList
Headers:  
   Content-Type: application/json

Body:
   {
      "request":{
          "SearchText":"test text",
          "CreatedBy":"myusername",
          "SequenceStartRange":0,
          "SequenceEndRange":15,
          "HasMetaData":"true"
      }
   }

这是一个特定示例,假设您使用的是 C# 并内置了来自 microsoft 的序列化库,但如果没有,您仍然可以使用相同的基本思想来做您想做的事情。

于 2012-08-16T21:13:58.957 回答