我正在尝试在MongoDB数据库之上定义REST API,我应该可以在其中添加集合和文档。假设如下:
http://games.mydomain.com/database/characters/123
在MongoDB中,我会创建数据库,然后是字符集,最后是ironman文档(有一个_id 123)。上述记录将按以下方式创建:
POST /database/characters/ HTTP/1.1
Host: games.mydomain.com
Content-Type: application/json
{ "_id" : 123, "name" : "ironman" }
如果稍后我意识到我应该打破两个子集(即朋友和敌人)中的字符,我会在字符后创建它们(不要担心迁移部分):
POST /database/characters/ HTTP/1.1
Host: games.mydomain.com
Content-Type: application/json
{ "name" : "friends" }
和...
POST /database/characters/ HTTP/1.1
Host: games.mydomain.com
Content-Type: application/json
{ "name" : "foes" }
这就是问题所在:POST(集合和文档)看起来都一样!也就是说,在查看API时,开发人员如何区分彼此?在这种特殊情况下,编写API会不会“更好”(或更不明确)?:
创建集合:
POST /{database}/createCollection
Host: games.mydomain.com
{...}
创建文档
POST /{database}/{collection}/
Host: games.mydomain.com
{...}
-OR -
POST /{database}/{collection}/createDocument
Host: games.mydomain.com
{...}
我知道它不像REST,但API必须创建资源和中间路径(即集合)。不知道我怎么能解决这个问题?
提前致谢!
- 铁托