我是我公司的 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 个用户,一个使用username
of john
,另一个使用username
of jane
。
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)
所以,我被困在这里。我想到的就是这些例子。我不认为这些是正确的。