//提交用户信息 POST 方法 API: http://localhost:3000/api/usercus/{username} 那么,问题来了,如张三: http://localhost:3000/api/usercus/zhangsan 那我在提交的时候json里是否含有用户名这个参数。因为URL已经含有{username}字段了。 另外restful有什么好处。完全可以全部提交到http://localhost:3000这里通过参数判断
Restful最基本的原则是:url表示资源,METHOD表示动作。另外通过accesstoken来验证用户的身份。遵守restful约定之后,任何开发者都能快速理解API的结构和意图。 http://localhost:3000/api/usercus/zhangsan 这个链接应该代表的是zhangsan的信息表,通过json提交要修改的用户信息,再用accesstoken验证用户权限。 restful 只是一种约定,就像写代码一样有个代码规范,这样大家都能看懂。 把全部请求提交到http://localhost:3000理论上是可行的,问题是这样的API理解起来费劲,用起来也费劲,恐怕这样的API也只有作者会用
那我在提交的时候json里是否含有用户名这个参数。因为URL已经含有{username}字段了。 如果是创建资源,个人认为就是url里不必带{username},body里存储所有信息。
@binking338 那如果是获取资源呢?明明已经知道
@jingsam 谢谢你的回答,解决了我的疑问。还有个问题,比如我需要3个参数,这时候提交了2个参数,我还需要返回错误提示么?关于参数个数不正确
rest跟什么鉴权什么token屁关系都没有!!!
StatusContinue = 100
StatusSwitchingProtocols = 101
StatusOK = 200
StatusCreated = 201
StatusAccepted = 202
StatusNonAuthoritativeInfo = 203
StatusNoContent = 204
StatusResetContent = 205
StatusPartialContent = 206
StatusMultipleChoices = 300
StatusMovedPermanently = 301
StatusFound = 302
StatusSeeOther = 303
StatusNotModified = 304
StatusUseProxy = 305
StatusTemporaryRedirect = 307
StatusBadRequest = 400
StatusUnauthorized = 401
StatusPaymentRequired = 402
StatusForbidden = 403
StatusNotFound = 404
StatusMethodNotAllowed = 405
StatusNotAcceptable = 406
StatusProxyAuthRequired = 407
StatusRequestTimeout = 408
StatusConflict = 409
StatusGone = 410
StatusLengthRequired = 411
StatusPreconditionFailed = 412
StatusRequestEntityTooLarge = 413
StatusRequestURITooLong = 414
StatusUnsupportedMediaType = 415
StatusRequestedRangeNotSatisfiable = 416
StatusExpectationFailed = 417
StatusTeapot = 418
StatusPreconditionRequired = 428
StatusTooManyRequests = 429
StatusRequestHeaderFieldsTooLarge = 431
StatusUnavailableForLegalReasons = 451
StatusInternalServerError = 500
StatusNotImplemented = 501
StatusBadGateway = 502
StatusServiceUnavailable = 503
StatusGatewayTimeout = 504
StatusHTTPVersionNotSupported = 505
StatusNetworkAuthenticationRequired = 511
@fangker res.sendStatus(400)
@captainblue2013 RestAPI确实与Token没关系,但是你的Rest API不鉴权吗?如果不用鉴权的话,说明API只设计给你自己调用,那还值得用API吗,直接函数调用不就得了!
@jingsam 呵呵
@fangker get http://localhost:3000/api/usercus/ get http://localhost:3000/api/usercus/zhangsan 这两个语意不一样
还有http返回码 和 错误码提示不冲突 比如你写了个函数,如果你觉得这个调用是错误的。你想发出异常,还是返回错误码?这个取决于你自己(虽然这个可以值得深入讨论)
@jingsam accesstoken还可以放很多地方 比如Header里啊(cookies)
@binking338 第一个是获取所有用户?
@359056163 请问这个状态码当做http状态码返回还是当做json里返回?
@binking338 谢谢指导
@jingsam 谢谢您的指导,因为是菜逼,我直接在第一次请求的时候redis创建一个key下次请求带用户名key验证。
@fangker HTTP 的状态码