我有一个 WCF 宁静的网络服务。通常,我的每个端点都可以用 /service/help 完美地描述,因为它们只使用查询字符串作为输入参数。例如,我有以下简单的功能:
[WebInvoke(UriTemplate = "customer?name={name}", Method = "POST")]
public void customer(string name)
这在 /service/help 中显示为:
Service at http://localhost:7000/service/customer?name={NAME}
不幸的是,我不能在两种情况下这样做:
- 具有令人难以置信的长值的端点(查询字符串被截断)
- 包含敏感数据的端点(IIS 记录的密码参数)
对于这两种情况,我知道需要传递一个请求正文。将我的功能更改为:
[WebInvoke(UriTemplate = "customer", Method = "POST")]
public void customer(Stream requestBody)
现在 /service/help 只返回
Service at http://localhost:7000/service/customer
如果我单击链接并导航到 /service/help/operations/customer,我也不会收到任何有用的信息:
The Request body is a byte stream
如何向 API 的使用者描述请求正文的 XML/json 结构?我可以以某种方式利用 /service/help 还是被迫使用 API 文档?