raml语法-嵌套API资源名称-大括号的使用
一个标准的raml示例:raml语法-嵌套API资源名称-大括号的使用,api,yaml,api-design,raml,Api,Yaml,Api Design,Raml,一个标准的raml示例: #%RAML 0.8 title: World Music API baseUri: http://example.api.com/{version} version: v1 /songs: get: post: /{songId}: get: delete: 资源包括: http://example.api.com/{version}/songs http://example.api.com/{version}/songs/{songI
#%RAML 0.8
title: World Music API
baseUri: http://example.api.com/{version}
version: v1
/songs:
get:
post:
/{songId}:
get:
delete:
资源包括:
http://example.api.com/{version}/songs
http://example.api.com/{version}/songs/{songId}
因此,如果我想在此文档中添加更多API,我可以这样做:
http://example.api.com/{version}/books
我的问题是,如果以下情况是合法的
http://example.api.com/{version}/songs/upload
如果是,raml如何区分以下API?(例如,“上传”的songId)
如果没有,那么只要大括号{}出现在任何级别,就不能为该级别定义更多的资源?那么在这种情况下,我应该如何定义上传API呢?我认为RAML没有针对不明确的资源URI的规定。但是,用于实现API的工具可能无法区分它们 在我看来,真正的限制是您希望为API的消费者提供的用户体验 在您的情况下,您可以想象在此处发布新歌的详细信息:
http://example.api.com/{version}/songs
然后将其字节数据发布到:
http://example.api.com/{version}/songs/{songId}/data
这种方法没有路径模糊性。您能详细说明一下“RAML没有针对模糊资源URI的规定”吗?很抱歉不清楚。我的意思是,RAML规范并不阻止定义具有不明确匹配的资源。我发现的唯一限制是避免路径参数值中的斜杠:,这是很明显的。我明白了。那么是我的实现决定了
http://example.api.com/{version}/songs/upload
用于上传功能,或者是关于一首id=“upload”的歌曲?是的,就是这样。
http://example.api.com/{version}/songs/{songId}/data