raml语法 - 嵌套的API资源名称 - 花括号的用法

时间:2015-10-19 04:09:59

标签: 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/{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?

1 个答案:

答案 0 :(得分:0)

我不认为RAML有针对模糊资源URI的规定。但是,用于实现API的工具可能无法区分它们。

IMO真正的限制是您希望为API的消费者提供的用户体验。

在你的情况下,可以在这里拍摄新歌曲的详细信息:

http://example.api.com/{version}/songs

然后在其中发布其字节数据:

http://example.api.com/{version}/songs/{songId}/data

这种方法没有路径模糊。