根据http://perfect.org/feature-requests.html
我想要求开箱即用地包含RAML功能。
我希望在服务器上看到类似以下内容以提供 RAML 文档:
server.addRamlDocs(path: "/raml.raml", versionRaml: 1.0, versionApi: "v1", title: "Test API title")
这将添加一个路由,该路由在匹配时会为所有 RAML 路由创建一个完整的 RAML 文件。
RAML 路由可能应该以与 MustachePageHandler 类似的方式创建,但分为 RamlDescriptionHandler、RamlValidateRequestHandler、RamlRequestHandler 和 RamlResponseHandler。
RamlDescriptionHandler
这应该负责:
- 描述请求/响应
- 自动为请求创建文档(当服务器文档匹配时)
RamlValidateRequestHandler
- 验证和类型转换请求
然后应该注入 HTTPRequest.ramlRequestData 和 HTTPRequest.ramlRequestIsValid。这应该不需要应用程序开发人员采取任何行动。
RamlRequestHandler
由开发人员编写的应用程序逻辑,应检查并使用 HTTPRequest.ramlRequestData 和 HTTPRequest.ramlRequestIsValid
应该设置 HTTPResponse.ramlStatus(HTTP 状态码)和 HTTPResponse.ramlData
RamlResponseHandler
应验证响应并根据 RamlDescriptionHandler 发送匹配,应用程序开发人员不采取任何行动。