1

我正在实现一个 web 应用程序并希望遵守 RESTfull 设计标准,我的问题是。

给定一个带有集合的类。

Person { id :: 整数名称 :: 字符串朋友 :: Persons 集合 }

实现 Person 类接口的“最”正确方法是什么:

1.

example.com/REST/persons -> [... {id: '2', name: 'Pete', friends: [1,4,6]} ... ]
example.com/REST/persons/2 -> {id: '2', name: 'Pete', friends: [1,4,6]}

在persons 类中使用一些搜索功能可以在哪里查找朋友?

或者

2.

example.com/REST/persons -> [... {id: '2', name: 'Pete'} ... ]
example.com/REST/persons/2 -> {id: '2', name: 'Pete'}
example.com/REST/persons/2/friends -> [{id: '1', name: 'Joann'}, 
                                       {id: '4', name: 'Jim'},
                                       {id: '6', name: 'Charlie'}]

集合中的元素在 person 实例中作为字段查找。

我已经看到这两件事都实现了,但我想遵守标准。

第三种方式刚刚涌向我。

example.com/REST/persons/2 -> {id     : '2', 
                               name   : 'Pete', 
                               friends: [example.com/REST/person/1,
                                         example.com/REST/person/4,
                                         example.com/REST/person/6]}

因此使接口事件更加 RESTfull——客户端现在可以遍历整个接口,而无需了解任何关于实现的信息。

我希望那里有一些输入。

4

1 回答 1

1

拥有example.com/REST/persons/{person-id}/friends/{friends-id}是正确的方法。REST 本身不强制执行任何 URL 组合规则,但这是大多数人所做的。

基本上你有一个资源Person和一个Friend具有多对多关系的子资源。

于 2013-02-05T17:40:21.393 回答