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 创建自定义实现并编写您自己的实现。
我需要动态生成一些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 创建自定义实现并编写您自己的实现。