我有RAML架构,其中包含 "javaType": "java.util.Map<String, java.util.List<Employee>>"
我有单独的架构(employee.schema)可用,它代表类Employee.
但是因为我没有在raml中使用employee.schema所以它不会生成类Employee并在将RAML转换为Java时抛出错误.
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"description": "Desc",
"properties": {
"employeeGroups": {
"type": "object",
"javaType": "java.util.Map<String, java.util.List<Employee>>"
}
},
"additionalProperties": false
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以分享评论如何"javaType": "java.util.Map<String, java.util.List<Employee>>"
在RAML中表示吗?
RAML Version: 1.0
Run Code Online (Sandbox Code Playgroud) 如何将Swagger JSON转换为RAML/YAML并进行验证?我不是在寻找一种程序化的方式,只需要一次转换.
我一直在考虑一个文档工具,用于构建Web服务的后端,以便在多个客户端中使用OAuth以及多次修订的可能性.我已经知道了蜂房,但做了一些研究,我找到了其他相当好的解决方案,并且有利可图的承诺.
RAML似乎承诺良好的代码生成和api可重用性.但它似乎无法创建模拟服务器.我无法理解为什么apiblueprint不能用于生成REST API的客户端库和服务器端框架.
对我们来说最好的用例是基于api的文档,用于消费服务的客户端iOS/Android/wp/js库可以与节点快速/解析应用程序一起自动生成,该应用程序提供编写代码的框架.随着api测试和负载测试.
RAML/Swagger/Apiary中的哪种解决方案最适合这种情况?
我想使用RAML来描述使用OAuth2的API
有没有人有一个解决方案或示例我可以用来与我自己的RAML进行比较?
有人知道是否有raml2html到Raml 1.0的版本?我发现只有Raml 0.8的工具,比如raml2html或 raml2md,但不适用于Raml 1.0.
我有一个通用的Java类型,如下所示:
class Response<D> {
List<D> data;
}
Run Code Online (Sandbox Code Playgroud)
并希望创建类似于RAML 1.0(我是新手)的东西.
我的第一个方法是
types:
Response:
type: object
properties:
data: object[]
Run Code Online (Sandbox Code Playgroud)
并在使用它时
body:
type: Response
properties:
data: MyDataType[]
Run Code Online (Sandbox Code Playgroud)
从API-Workbench我总是得到"从Response继承的非法覆盖属性数据".
另一个想法是使用repeat
:
types:
Response:
type: object
properties:
data: object
repeat: true
Run Code Online (Sandbox Code Playgroud)
和分别
body:
type: Response
properties:
data: MyDataType
repeat: true
Run Code Online (Sandbox Code Playgroud)
现在非法覆盖已经消失,但在API-Console中我现在得到一个"Uncaught TypeError".
怎么解决?或者我需要一种完全不同的方法?任何的想法?
我想在Eclipse上编辑RAML.我没有找到RAML的任何Eclipse插件.
在RAML网站(http://raml.org/projects.html)上只有Sublime.
你知道在Eclipse上编写RAML的经验吗?
我很喜欢在声明resourceType时RAML如何动态引用不同的模式:
resourceTypes:
- collection:
get:
responses:
200:
body:
application/json:
schema: <<schema>>
post:
body:
application/json:
schema: <<schema>>Create
responses:
200:
body:
application/json:
schema: <<schema>>
Run Code Online (Sandbox Code Playgroud)
在这里,我可以使用这个
/users:
type: { collection: { schema: user } }
Run Code Online (Sandbox Code Playgroud)
和RAML将给我user
GET和POST的架构响应,并使用userCreate
架构发送POST请求.凉!现在我可以使用大量不同的模式重用我的集合定义.
但是现在我想要为所有内容提供示例json,我希望以<<schema>>
另一种方式利用var来利用"代码重用".我希望能够做到
resourceTypes:
- collection:
get:
responses:
200:
body:
application/json:
schema: <<schema>>
example: examples/v1-<<schema>>.json
post:
body:
application/json:
schema: <<schema>>Create
example: examples/v1-<<schema>>-create.json
responses:
200:
body:
application/json:
schema: <<schema>>
example: examples/v1-<<schema>>.json
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这不起作用.我收到一个错误说
error: File with path "/examples/v1-%3C%3Cschema%3E%3E.json" does not exist
Run Code Online (Sandbox Code Playgroud)
所以现在我已经使用手动将它添加到我的所有集合中,/users
上面的例子已成为
/users: …
Run Code Online (Sandbox Code Playgroud) 我们的api将有一个可重用的子/posts
路由,适用于不同的顶级路由.
例如:
/me/posts
/users/{user-id}/posts
...
Run Code Online (Sandbox Code Playgroud)
帖子示例:
/posts
/{post-id}
/likes
/comments
/{comment-id}
...
Run Code Online (Sandbox Code Playgroud)
帖子也有固定的子路由,参数等.
使用RAML定义这种默认的可重用子路由的标准方法是什么?
当然,人们可以决定改变它并创建/ post端点,但我不认为应该根据RAML功能更改API定义.此外,如果我想要,我应该能够有多个指向同一资源的端点.
如果您有答案,请根据要求分享一个例子.