C# Web 中的文档 API

Documentation in C# Web API

我需要动态生成一些WEB-API的帮助。 问题是输入参数和输出结构都是动态的。

查看示例:

[HttpGet]
[Route("API/Individuals")]
[ActionName("Individuals")]
public HttpResponseMessage Select()
{
     var Params = this.Request.RequestUri.ParseQueryString();
     string UserNameCVT = Code.RemappingUser.Remap(UserName.Name);
     DataSet ds = Models.Individuals.Individuals.SelectDS(UserNameCVT, Params);
     List<Dictionary<string, object>> lDict = DecodeIndividualsFromDS(ds);

     response = Request.CreateResponse(HttpStatusCode.OK, lDict);
     return response;
}

通过这样做,API 将其与下面的 FE DB 解耦,让他们可以根据需要自由修改数据结构。

是否可以在定义结构后生成完整的帮助(不更改 API 的代码)?

是的,你可以。 XML 文档提供程序中的关键代码行是这样的(来自 getting started page):

config.SetDocumentationProvider(new XmlDocumentationProvider(
HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));

如您所见,文档是从文件路径中读取的。如果您可以在应用程序启动时动态创建该文件,然后传入文件路径,就可以了。 (你必须找到一种方法来动态处理这些端点,但这不在这个问题的范围内)

此外,如果您需要做更多的事情,您可以通过 taking the XmlDocumentationProvider from Github 创建自定义实现并编写您自己的实现。