REST API 中的外键约束

Dom*_*ikS 5 rest

我正在为旅行计划应用程序设计 RESTful API,但不知道如何对资源创建强制执行外键约束。我有两个资源:TripUserTrip资源看起来像这样:

{
  "id": 1,
  //some other attributes
  "tripParticipants":[ 
    {
      "id": 1
    }
   ]
}
Run Code Online (Sandbox Code Playgroud)

tripParticipantsid集合在哪里UserTripParticipants应该只包含创建的Users(创建的意思是存储在数据库中)。

POST /trips/{id}/tripParticipants我在端点向集合中添加元素时遇到问题。User当给定的 id 在我的数据库中不存在时,我应该返回什么?返回操作HTTP 404的状态代码POST看起来很奇怪。REST 标准是否为该用例定义了一些解决方案?

Opa*_*pal 6

在这种情况下可以使用两种 HTTP 状态代码:

两者都适合您的场景。就我个人而言,我会选择422