问题 ASP.NET web api:记录/指定服务


我一直在看 asp.net Web Api,我喜欢实现实用Web服务的简单性。

但是,我如何记录/指定这样实现的服务的接口?例如,我是否可以传递或生成没有.NET背景的Java人员,以便让他轻松调用和使用该服务?我能给javascript的家伙什么?

理想情况下,我喜欢SOAP / XSD的好处或类似的东西(很容易用很好的类型对象反序列化),同时保留一个可以从Web浏览器调用的服务(即支持非十分JSON)。

更新

值得注意的是,自从我最初发布这个问题以来,我发现了 ServiceStack 更自然地处理这个问题;支持JSON,SOAP和WSDL开箱即用,为客户选择相同的服务。如果你真的想要SOAP + JSON,那么它可能是一个比ASP.NET Web Api更好的框架。


9172
2017-08-09 10:12


起源



答案:


2016年3月更新

已经有一段时间了,因为这个问题得到了解答,并且用于记录任何Rest API的工具已经出现了很多。我们目前正在评估 Swagger 2.0 现在产卵了 开放Api计划肾错构瘤 和 API蓝图

对于WebAPI项目,有一个工具 Swashbuckle 自动创建Swagger(Open API)格式文档。

用于记录REST服务的格式:

有一些尝试构建和标准化REST服务的描述:

  • Web应用程序解析语言(WADL
  • Web服务描述语言2.0(WSDL 2.0

我认为可以说上述两种方法都没有被广泛采用,但是WADL确实看起来像一个简洁的格式 - 一个快速的XSLT顶部,它可能是一个很好的人类可读格式。在apigee github网站上有很多着名API的WADL示例 这里

当试图找到合适的文档格式时,我倾向于从其他人那里寻找“灵感”...... Apigee在这个领域做了很多研究并将其作为其API之一的文档 这里 或者看看Facebook的社交图api 这里

这些例子基本上符合建议 这里 

如何自动记录:

使用.NET:有一个自动生成WebApi“帮助”页面的好例子 这里。这个例子的逻辑扩展也可能是为了让它在WADL格式化的版本中运行...

使用Java: 新泽西 是Java社区中用于自动生成WADL的工具。

与其他开发者分享的内容:

你的Javascript家伙很可能想要一本像Facebook和apigee这样的手册;提供资源,网址,响应代码等的开发示例。这里最重要的是支持JSON作为主要内容类型,这对他/她来说最容易消费和使用。

您的Java人员也需要手册,但理论上也可以为您发送/使用的资源的任何XML表示提供示例XSD(假设他们将请求作为“Content-Type:appplication / xml”)。这个 可能 帮助他们构建代理类等.JSON到Java和.NET转换器可以在线获得,并且在手册中给出了示例资源,他们应该能够使用这些类型的服务之一来快速创建代理。 从JSON生成Java类?

如果你绝对必须有自动发现,自动代理生成等,那么你可能需要提供一个选择  REST和SOAP(带WSDL)端点 - 相关问题: ReST代理对象生成器


11
2017-08-10 13:25





您可以使用 IApiExplorer 界面和 ApiExplorer class,以便为您的Web Api服务创建帮助页面。此帮助页面将描述您的服务公开的REST方法,因此任何了解REST如何工作的开发人员都可以使用它(无论语言如何)。请阅读以下链接了解详情和样本:


5
2017-08-10 12:25



感谢IApiExplorer的提示 - 这是一个很好的起点! - Eamon Nerbonne


答案:


2016年3月更新

已经有一段时间了,因为这个问题得到了解答,并且用于记录任何Rest API的工具已经出现了很多。我们目前正在评估 Swagger 2.0 现在产卵了 开放Api计划肾错构瘤 和 API蓝图

对于WebAPI项目,有一个工具 Swashbuckle 自动创建Swagger(Open API)格式文档。

用于记录REST服务的格式:

有一些尝试构建和标准化REST服务的描述:

  • Web应用程序解析语言(WADL
  • Web服务描述语言2.0(WSDL 2.0

我认为可以说上述两种方法都没有被广泛采用,但是WADL确实看起来像一个简洁的格式 - 一个快速的XSLT顶部,它可能是一个很好的人类可读格式。在apigee github网站上有很多着名API的WADL示例 这里

当试图找到合适的文档格式时,我倾向于从其他人那里寻找“灵感”...... Apigee在这个领域做了很多研究并将其作为其API之一的文档 这里 或者看看Facebook的社交图api 这里

这些例子基本上符合建议 这里 

如何自动记录:

使用.NET:有一个自动生成WebApi“帮助”页面的好例子 这里。这个例子的逻辑扩展也可能是为了让它在WADL格式化的版本中运行...

使用Java: 新泽西 是Java社区中用于自动生成WADL的工具。

与其他开发者分享的内容:

你的Javascript家伙很可能想要一本像Facebook和apigee这样的手册;提供资源,网址,响应代码等的开发示例。这里最重要的是支持JSON作为主要内容类型,这对他/她来说最容易消费和使用。

您的Java人员也需要手册,但理论上也可以为您发送/使用的资源的任何XML表示提供示例XSD(假设他们将请求作为“Content-Type:appplication / xml”)。这个 可能 帮助他们构建代理类等.JSON到Java和.NET转换器可以在线获得,并且在手册中给出了示例资源,他们应该能够使用这些类型的服务之一来快速创建代理。 从JSON生成Java类?

如果你绝对必须有自动发现,自动代理生成等,那么你可能需要提供一个选择  REST和SOAP(带WSDL)端点 - 相关问题: ReST代理对象生成器


11
2017-08-10 13:25





您可以使用 IApiExplorer 界面和 ApiExplorer class,以便为您的Web Api服务创建帮助页面。此帮助页面将描述您的服务公开的REST方法,因此任何了解REST如何工作的开发人员都可以使用它(无论语言如何)。请阅读以下链接了解详情和样本:


5
2017-08-10 12:25



感谢IApiExplorer的提示 - 这是一个很好的起点! - Eamon Nerbonne