Python 允许使用GET vs POST API验证docker映像
不确定在这种情况下是使用GET还是POST。我正在创建一个API,它将返回docker映像是否兼容。更好的方法是什么 情景1:Python 允许使用GET vs POST API验证docker映像,python,rest,api,microservices,Python,Rest,Api,Microservices,不确定在这种情况下是使用GET还是POST。我正在创建一个API,它将返回docker映像是否兼容。更好的方法是什么 情景1: GET: https://<hostname>/api/checkImage?image=nginx:latest GET:https:///api/checkImage?image=nginx:latest 情景2 GET: https://<hostname>/api/checkImage/nginx:latest GET:https:
GET: https://<hostname>/api/checkImage?image=nginx:latest
GET:https:///api/checkImage?image=nginx:latest
情景2
GET: https://<hostname>/api/checkImage/nginx:latest
GET:https:///api/checkImage/nginx:latest
情景3
POST: https://<hostname>/api/checkImage
Payload: {"image": "nginx"}
POST:https:///api/checkImage
有效负载:{“映像”:“nginx”}
显然需要对冒号进行url编码,但上述所有场景都会返回:
{“allowed”:false}
需要理解的重要语义概念是
如果请求方法定义的语义本质上是只读的,则它们被认为是“安全的”
在本规范定义的请求方法中,GET、HEAD、OPTIONS和TRACE方法被定义为安全的
因此,在您的例子中,资源类似于“映像的符合性报告”;GET请求要求服务器提供报告的当前表示形式。服务器可以选择提供以前缓存的表示,也可以生成新的符合性报告并返回该报告——但这些是与请求语义无关的实现细节
另一方面,如果我们希望服务器将其资源表示更新为较新的内容,那么我们可能会使用POST,而不是GET,因为我们正在尝试引入更改,并且不希望通用缓存返回陈旧的报表表示
从客户机的角度来看,它可能看起来像
GET /api/checkImage?image=nginx:latest
Oh, this representation is too old, I need something recent
POST /api/checkImage?image=nginx:latest
GET用于检索有关某事物的信息。POST用于创建、更改状态或保存数据