加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – RESTful API设计(资源连接)

发布时间:2020-12-13 22:31:26 所属栏目:PHP教程 来源:网络整理
导读:我正在为我的Web项目( PHP)设计一个API,但在建模资源与属性之间的关系时会遇到麻烦.我想得到一些关于如何继续的意见. 资源: 用户. 我. 姓名. 狗(关系). 我. 私人(是或否). 狗. 我. 姓名. 关系: 多对多. 一个用户可以有很多狗. 一只狗可以属于许多用户. 这
我正在为我的Web项目( PHP)设计一个API,但在建模资源与属性之间的关系时会遇到麻烦.我想得到一些关于如何继续的意见.

资源:

>用户.

>我.
>姓名.
>狗(关系).

>我.
>私人(是或否).

>狗.

>我.
>姓名.

关系:

>多对多.

>一个用户可以有很多狗.
>一只狗可以属于许多用户.

>这种关系可以是私人关系或公共关系.

您想如何更新关系的“私人”属性?

现在你必须发送一个PUT请求到… / api / users / {userId},包括该用户的所有关系,包括更新的属性:

(名称可以为NULL – >无更新)

>狗:

>狗.

> ID:DogA.
>私人:是的.

>狗.

> ID:DogB.
>私人:没有.(更新)

我对这种方法感到不舒服,因为我认为只需要发送已更改的信息进行更新.因此,我现在的想法是添加对仅将更新的关系发送到… / api / users / {userId}的支持:

>狗.

>狗.

> ID:DogB.
>私人:没有.(更新)

在我开始工作之前,我非常感谢一些反馈.也许还有其他更好的方法来处理资源之间的关系?

解决方法

这样做会违反REST服务是幂等的原则.这意味着您应该能够在不使用第二个操作更改资源的情况下发送相同的操作两次.

我将关系视为一个单独的资源:创建/更新将是PUT ../api/users/{userId}/dogs/{dogId}私有:是/否.删除关系将由DELETE ../api/users/{userId}/dogs/{dogId}处理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读