我有一个资源(示例狗),并公开了端点
/v1/狗&/v1/狗/{dogId} -- GET
我的狗收藏在mongodb中,dogIds是mongoIds(ObjectId)。
如果请求/v1/dog/55243b709f6f672314103bb1 --我得到一个200 ok
如果发送的相同请求的Id不是狗,请执行以下操作(/v1/ mongoId /12342222)
我的响应是格式异常还是404 NotFound异常?
我在想404。让我知道。
发布于 2015-08-11 23:17:58
IMHO....Yes 404,或者您可以抛出400错误请求,因为您示例中的ID将无法通过长度的验证检查。所以这要看情况。如果你在访问数据库之前发现了这个错误,那么这是一个400错误的请求。但是,如果您将请求带到数据库并进行查找,但结果为空,那么它将是一个404未找到。
发布于 2015-08-11 23:21:00
请求是有效的--因为它符合模式(/v1/dogs/<<_id>>) --因此它是而不是a Bad request (400 Bad Request)。
仅仅因为这个原因,我就会发回一个404 Not Found。
$id = $strIdFromRequest;
try {
$id = new MongoId($id);
} catch(\MongoException $objException) {
//Send back a 404
}
//Query Mongo
//If nothing return, respond with a 404
$objCursor = $objMongo->findOne(array("_id" => $id));https://stackoverflow.com/questions/31945556
复制相似问题