gpt4 book ai didi

友谊系统的 RESTful URL 设计

转载 作者:行者123 更新时间:2023-12-02 21:57:39 24 4
gpt4 key购买 nike

我是公司的 API 开发人员。我们正在开发一个社交网络。我们正在使用友谊系统。我们正在使用面向 API 的系统。我将要编写的 API 将被我们正在开发的每个平台使用。

我通常有一个用户资源,我正在使用一个友谊表来跟踪友谊:

+-----------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| sourceId | int(11) | NO | MUL | NULL | |
| targetId | int(11) | NO | | NULL | |
| status | tinyint(1) | NO | | 0 | |
| seen | tinyint(1) | NO | | 0 | |
| createdAt | timestamp | NO | | 0000-00-00 00:00:00 | |
| updatedAt | timestamp | NO | | 0000-00-00 00:00:00 | |
| deletedAt | timestamp | YES | | NULL | |
+-----------+------------------+------+-----+---------------------+----------------+

现在,我正在考虑如何实现必要的 URI。但我不知道我应该如何准确地实现它。而我也只能想出这个点子,无法推进:

假设我有 2 个用户,一个是 johnusername,另一个是 janeusername >。

jane 想加 john 为好友,她发送了一个 POST 请求:

POST /users/john/friendships

john 看到这个,想要否认或确认它,为此,我想出了两个不同的想法;第一个是:

PUT /users/jane/friendships?action=(deny|confirm)

或者第二个是:

PUT /users/jane/friendships/<friendshipId>?action=(deny|confirm)

按照惯例,第二个似乎更适合我,但后来我认为我可以做到

PUT /friendships/<friendshipId>?action=(deny|confirm)

所以,我被困在这里了。我想到的就是这些例子。我不认为这些是正确的。

最佳答案

John 可以加 Jane 为好友(包括带有相关信息的请求正文):

POST/users/john/friends

...或者,John 可以更新一些关于他与 Jane 的友谊的信息(同样,通过请求正文)

PUT/users/john/friends/jane

...或者,John 可以“解除好友关系”Jane。

删除/users/john/friends/jane

关于友谊系统的 RESTful URL 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com