标准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/{songId}
因此,如果我想在此文档中添加更多API,我可以这样做:
http://example.api.com/{version}/books
我的问题是,如果以下是合法的吗?
http://example.api.com/{version}/songs/upload
如果是,raml如何区分以下API? (例如,歌曲是“上传”)
http://example.api.com/{version}/songs/upload
http://example.api.com/{version}/songs/{songId}
http://example.api.com/{version}/songs/upload/{songId}
如果没有,那么只要大括号{}出现在任何级别,就不能为该级别定义更多资源?那么在这种情况下我应该如何定义上传API?
答案 0 :(得分:0)
我不认为RAML有针对模糊资源URI的规定。但是,用于实现API的工具可能无法区分它们。
IMO真正的限制是您希望为API的消费者提供的用户体验。
在你的情况下,可以在这里拍摄新歌曲的详细信息:
http://example.api.com/{version}/songs
然后在其中发布其字节数据:
http://example.api.com/{version}/songs/{songId}/data
这种方法没有路径模糊。