获取http问号后参数_使用ASP.NET Core 3.x 构建 RESTful API 3.2.2 HTTP方法

HTTP 方法

POST 

需求:添加一个公司信息。 

需求图解: 

3bb7ca09b4d7ae27376bb9f8177e992f.png

HTTP请求图解: 

dc6db55d5cdae1392cb9cd849d7e446b.png

文字解释: 

添加公司这个需求的HTTP表示就是 POST api/companies。 

当我们向 api/companies这个标识添加一个公司信息的时候,就会利用提供的公司信息创建一个公司的资源。这里对应的HTTP方法是POST。 

POST请求的参数通常存放在请求的body里面,所以公司的信息就放在了body里面。 

当公司资源创建好之后,这个action应该返回新创建的资源以及可以获取该资源的路径标识,也就是api/companies/{新资源的id}。 

GET 

获取单个资源 

需求:获取一个公司信息 

需求图解: 

d5f03c7d53264739ef98ca4249db4479.png

HTTP请求图解: 

a85101056b29ea3ef73e3f0d31e93049.png

文字解释: 

我们想要通过 api/companies/{companyId} 这个标示来获取一个公司资源,这里就需要使用HTTP GET 方法,放在一起就是 GET api/companies/{companyId}。 

GET请求总是会返回请求 URI 所对应的资源,所以这个请求会返回这个资源的内容。 

获取集合资源 

需求:获取符合查询条件的公司资源 

需求图解: 

b85ca9423d04ae8abae192d0d3365e04.png

HTTP请求图解: 

e4dda49839cfdf4ef95fe8c6386595b6.png

这个需求是按条件搜索资源,可能返回0个或者多个符合条件的资源。这里我们使用HTTP的GET方法,如果想获取所有的公司资源,那么请求路径是 api/companies;如果想获取符合查询条件的公司资源,那么请求里就需要一些参数,通常使用查询字符串(query string)来传递参数,例如: 

GET api/someresources?param1=value1&param2=value2 

GET api/products?xxxxx=something 

在这里,参数是在问号?后边,以name=value的形式存在。如果有多个查询参数,它们之间使用 & 符号分隔开。 

当搜索资源的工作结束后,GET请求会返回匹配该路径(包括参数部分)的资源。 

DELETE 

需求:删除一个公司 

需求图解: 

60b6e9ffe1308398304c7c7c171652c7.png

HTTP请求图解: 

5be349052474a8546aa03c6e53ac25a8.png

文字解释: 

HTTP  DELETE 方法就很好理解了,就是删除指定路径的资源而已,而且不需要返回任何东西。 

PATCH 

需求:更新公司的信息。 

需求图解: 

1cc46e7a86b916262650d882cbfd6984.png

HTTP请求图解: 

8d5e707a31c5e746f655e5ef791114fc.png

文字解释: 

这里有些初学者可能会出错。HTTP 用来表示更新信息的方法是 PATCH,所以整个请求时 PATCH api/companies/{companyId}。注意PATCH表示对资源进行局部更新。 

和POST一样,PATCH的参数也位于请求的body里面。例如,如果你想更新公司的名称,那么就要把新的公司名称放在body里面。 

PATCH的请求无需返回任何东西。 

PUT 

需求:替换公司信息。 

需求图解: 

d5ee063d3abf160efcb58337ef91b447.png

HTTP请求图解: 

c0d00917fccd0dd9f87c17b38b37e32b.png

文字解释: 

HTTP  PUT 方法用于完全替换已存在的一个资源;或者如果标识URI对应的资源不存在,那么就创建一个资源。对于后一种情况,它的效果和添加操作是一样的。 

 POST 一样,PUT的参数也位于请求的body里面。 

如果是替换现有资源,那么无需返回任何东西;但如果是创建资源的操作,就应该返回新创建的资源。 

综上 

通过HTTP方法可进行的CRUD基本操作已经介绍的差不多了,但是这里的CRUD只是从API消费者的角度而言。例如,DELETE api/companies/12 并不意味着id为12的公司信息从数据库中被删除了,也许只是把该公司的信息的状态设置为deleted而已。 

对于不限于CRUD的其它操作,我们也得使用这些HTTP方法来进行表示,多少要进行一些妥协。 

最后使用一张图表总结一下这些HTTP方法对应的操作: 

d766c96e2cfadfacba34b9df62195320.png

实际上还有 HTTP  OPTIONS 和 HEAD 也会直接或者间接的用到,这俩以后再说吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值