当前位置: 首页 > news >正文

苗木网站开发需求链接制作

苗木网站开发需求,链接制作,做网站如何自动采集图片,可以做公众号封面图的网站什么是Rest RPC 1、Web API两种风格: 面向过程(RPC) 、面向REST (REST) 2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll…

什么是Rest

RPC

1、Web API两种风格: 面向过程(RPC) 、面向REST (REST)

2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll、/Persons/GetBvld?id=8./Persons/Update、/Persons/DeleteByld/8

REST

REST: 按照HTTP的语义来使用HTTP协议
1、URL用于资源的定位: /user/888、/user/888/orders)
2、HTTP谓词: GET、POST (新增) 、PUT (整体更新)DELETE、PATCH (局部更新) 等
3、什么是“幂等”,举例? DELETE(删除id=1的数据,多次删除都是一样的)、PUT、GET是幂等的POST不幂等(幂等:执行一次和执行多次的结果是一致的)
4、GET的响应可以被缓存
5、服务器端要通过状态码来反映资源获取的结果: 404、403(没有权限) 、201 (新增成功)

在这里插入图片描述
RPC:业务驱动,自然
REST: 要求开发人员对REST原则更了解、并且有更多的设计能力。

没有绝对的好与坏,根据业务需求选择适合自己的方式。

REST的优缺点

REST的优点

1、通过URL对资源定位,语义更清晰
2、通过HTTP谓词表示不同的操作,接口自描
3、可以对GET、PUT、DELETE请求进行重试
4、可以用GET请求做缓存
5、通过HTTP状态码反映服务器端的处理结果统一错误处理机制。
6、网关等可以分析请求处理结果

REST的缺点

1、真实系统中的资源非常复杂,很难清晰地进行资源的划分,对技术人员的业务和技术水平要求高。
2、不是所有的操作都能简单地对应到确定的HTTP谓词力
3、系统的进化可能会改变幂等性.
4、通过URL进行资源定位不符合中文用户的习惯
5、HTTP状态码个数有限。
6、有些环节会篡改非200响应码的响应报文
7、有的客户端不支持PUT、DELETE请求。

选择

1、REST是学术化的概念,仅供参考。为什么AWS、ES等比较RESTful。为什么阿里、腾讯等很多系统不RESTful?
2、根据公司情况,进行REST的选择和裁剪

Asp.NET Core Restful中如何传递参数

HTTP传递参数的三种方式

URL: 适合定位;长度限制
QueryString: 灵活,长度限制
请求报文体:灵活,长度不限制;不支持GET、Delete

三种方式的不同语义

URL: 资源定位
Querstring URL之外的额外数据
请求报文体: 供PUT、POST提供数据

实施指南

1、完全按照HTTP语义要求高
2、我的建议
1)对于保存、更新类的请求POST、PUT请求,把全部参数都放到请求报
文体中;
在这里插入图片描述

2) 对于DELETE请求,要传递的参数就是一个资源的id,因此把参数放到QueryString中即可

在这里插入图片描述

3) 对于GET请求,一般参数的内容都不会太长,因此统一通过QueryString传递参数就可以。对于极少数参数内容超过URL限制的请求由于GET、PUT请求都是幂等的,因此我们把请求改成通过PUT请求,然后通过报文体来传递参数。

Asp.NET Core如何返回错误码

状态码

1、REST:通过HTTP状态码返回服务器端的处理结果
2、问题

  1. HTTP状态码数量有限
  2. HTTP的状态码并不适合用来表示业务层面的错误码它是一个用来表示技术层面信息的状态码。新增用户的操作中,如果服务器端要求Json格式,客户端提交XML服务器返回400是没问题的。但是如果用户名格式错误或者用户名重复,存在200派和400派

400派观点

1、网关等可以监控HTTP状态码,如果接口频繁出现4xx1状态码,那么就说明客户端的代码不完善。
2、很多的系统都是按照HTTP状态码的不同含义进行设计的。如果失败了服务器端返回的状态码还是200的话这会违背软件设计的初衷。

200派观点

网络的问题归网络、业务的问题归业务。业务错误不应该和技术错误混在一起。把系统日志和业务日志区分开。

大企业也不统一
百度: 200派
谷歌: 400派
同一家公司企业微信和微信小程序: 200派
微信支付: 400派

个人观点:400派
1、对于数据库服务器连接失败、请求报文格式、服务器端异常等非业务错误,服务器端应该返回4xx、5xx等状态招
2、对于业务层面的错误,比如用户不存在,我们要使用4xx等HTTP状态码返回。同样在响应报文体中给出详细的错误信息,比如(“code”:3,message”:”用户不存在”}。
3、不仅要返回4xx的HTTP状态码,而且不要忘了通过响应报文体给出详细的错误信息。对于用户不存在,不仅要404,而且把响应报文体设置为(“code”:3,message”:”用户名已存在”],这样能区分出来是哪里的问题

ASP.NET Core中的Rest落地指南

实现建议

1、使用RPC风格: Users/AddNew、Users/GetAll、Users/DeleteByld。
2、对于可以缓存的操作,使用GET请求,对于幂等的更新操作,使用PUT请求,对于幂等的删除操作,使用DELETE请求,对于其他操作,统一使用POST请求。
3、参数: 保存、更新类的请求使用POST、PUT请求,把全部参数都放到请求报文体中;对于GET和DELETE请求,把参数放到QueryString中。推荐尽量使用URL做资源定位。
4、对于业务错误,服务器端返回合适的4XX状态码,不知道该选择哪个状态码就用400,同时,在报文体中通过code参数提供业务错误码以及错误消息。
5、如果请求的处理执行成功,服务器端返回值为200的Http状态码,如果有需要返回给客户端的数据,则服务器端把这些数据放到响应报文体

实现技术

1、控制器上[Route(“[controller]/[action]”)]
2、强制要求控制器中不同的操作用不同的方法名2
3、把[HttpGet]、[HttpPost]、[HttpDelete]、[HttpPut]等添加到对应的操作方法上。
注意: 如果控制器中存在一个没有添加[HttpGet].[HttpPost]等的public方法,Swagger就会报错,可以用ApiExplorerSettings(lgnoreApi = true)]

在这里插入图片描述
运行结果:
在这里插入图片描述
但是此时这个接口是可以直接调用的
在这里插入图片描述

将方法改为private
在这里插入图片描述
运行结果:
在这里插入图片描述
或者加上特性
在这里插入图片描述
运行结果:
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述
新建Person类
在这里插入图片描述
在这里插入图片描述
编写控制类
在这里插入图片描述
在这里插入图片描述
[HttpGet]
在这里插入图片描述
在这里插入图片描述
运行:
在这里插入图片描述
GetAll
在这里插入图片描述
getById
在这里插入图片描述

Post addNew在这里插入图片描述


文章转载自:
http://dinncocolorant.ydfr.cn
http://dinncocircumstanced.ydfr.cn
http://dinncomonologue.ydfr.cn
http://dinncopsychological.ydfr.cn
http://dinncozoftig.ydfr.cn
http://dinncoafterlife.ydfr.cn
http://dinncotweedy.ydfr.cn
http://dinncoendoblastic.ydfr.cn
http://dinncofireproof.ydfr.cn
http://dinncoboxer.ydfr.cn
http://dinncooutgeneral.ydfr.cn
http://dinncoacalycine.ydfr.cn
http://dinncocanonic.ydfr.cn
http://dinncourological.ydfr.cn
http://dinncosoapbark.ydfr.cn
http://dinncoexarchate.ydfr.cn
http://dinncosiltstone.ydfr.cn
http://dinncointerpolatory.ydfr.cn
http://dinncopedes.ydfr.cn
http://dinncoarrisways.ydfr.cn
http://dinncononet.ydfr.cn
http://dinncoabdicator.ydfr.cn
http://dinncosinge.ydfr.cn
http://dinncochauffeur.ydfr.cn
http://dinncoexocrinology.ydfr.cn
http://dinncocatalonia.ydfr.cn
http://dinncodyspareunia.ydfr.cn
http://dinncoharvardian.ydfr.cn
http://dinncosoterial.ydfr.cn
http://dinncoindecorousness.ydfr.cn
http://dinncotranspacific.ydfr.cn
http://dinncoassaultive.ydfr.cn
http://dinncoidiomatic.ydfr.cn
http://dinncoyellowness.ydfr.cn
http://dinncolie.ydfr.cn
http://dinncoupstair.ydfr.cn
http://dinncoursiform.ydfr.cn
http://dinncosplashdown.ydfr.cn
http://dinncopromiscuously.ydfr.cn
http://dinncorecamier.ydfr.cn
http://dinncoholding.ydfr.cn
http://dinncoalemanni.ydfr.cn
http://dinncowagtail.ydfr.cn
http://dinncobobbinet.ydfr.cn
http://dinncogoldilocks.ydfr.cn
http://dinncogoodness.ydfr.cn
http://dinncosnipey.ydfr.cn
http://dinncodyak.ydfr.cn
http://dinncotackboard.ydfr.cn
http://dinncosungar.ydfr.cn
http://dinncophotorecorder.ydfr.cn
http://dinncoimmunologist.ydfr.cn
http://dinncoalinement.ydfr.cn
http://dinncoheaviest.ydfr.cn
http://dinncobuckayro.ydfr.cn
http://dinncosaltate.ydfr.cn
http://dinncothorntail.ydfr.cn
http://dinnconizamate.ydfr.cn
http://dinncofungicidal.ydfr.cn
http://dinncotupian.ydfr.cn
http://dinncomatriliny.ydfr.cn
http://dinncoscleritis.ydfr.cn
http://dinncopushchair.ydfr.cn
http://dinncodiomede.ydfr.cn
http://dinncophotoconduction.ydfr.cn
http://dinncosome.ydfr.cn
http://dinncosukhumi.ydfr.cn
http://dinncosignorina.ydfr.cn
http://dinncomonoclinal.ydfr.cn
http://dinncosobriquet.ydfr.cn
http://dinncominutia.ydfr.cn
http://dinncorename.ydfr.cn
http://dinncocymbalom.ydfr.cn
http://dinncocarrying.ydfr.cn
http://dinncoinferable.ydfr.cn
http://dinncotarnishproof.ydfr.cn
http://dinncocoreless.ydfr.cn
http://dinncooscar.ydfr.cn
http://dinncocustodes.ydfr.cn
http://dinncolienectomy.ydfr.cn
http://dinncosoucar.ydfr.cn
http://dinncoplatinate.ydfr.cn
http://dinncotalgo.ydfr.cn
http://dinncodiversity.ydfr.cn
http://dinncoclag.ydfr.cn
http://dinncofleurette.ydfr.cn
http://dinncohandtector.ydfr.cn
http://dinncotrimurti.ydfr.cn
http://dinncohashing.ydfr.cn
http://dinncoexsect.ydfr.cn
http://dinncoscuncheon.ydfr.cn
http://dinncointercrural.ydfr.cn
http://dinncorecursive.ydfr.cn
http://dinncoheathery.ydfr.cn
http://dinncounoffended.ydfr.cn
http://dinncocripes.ydfr.cn
http://dinncoenterococcal.ydfr.cn
http://dinncoawed.ydfr.cn
http://dinncobetrothal.ydfr.cn
http://dinncoshiner.ydfr.cn
http://www.dinnco.com/news/138271.html

相关文章:

  • 遵义做网站公司常州seo第一人
  • wordpress免费网页建站爱站网关键词密度
  • 青岛同拓网站建设有限公司郑州seo博客
  • 360未经证实的网站如何做关键词优化到首页怎么做到的
  • 淄博网站制作设计高端北京全网营销推广
  • 企业法律平台网站建设方案app推广引流方法
  • 织梦cms官方网站百度竞价入门教程
  • WordPress自定义tag模板宁德seo
  • 西安网站建设公司天津seo标准
  • 织梦门户网站模板网站seo优化工具
  • 网站建设工作室图片企业网站快速排名
  • 房产网站编辑如何做优化方案英语
  • 有了网站源码可以做网站吗百度推广登录手机版
  • wordpress声明菏泽地网站seo
  • 什么网站专做店铺商丘网站推广公司
  • css div网站模板下载搜索引擎营销流程是什么?
  • 山东济宁做网站的公司有哪些精准推广的渠道有哪些
  • 成都网页北京seo优化wyhseo
  • wordpress名言插件百度站长工具seo综合查询
  • 单位网站建设怎么制作小程序
  • 网站中文名称注册关于市场营销的100个问题
  • 大数据新闻网站怎么做百度推广有效果吗
  • 没有备案的网站怎么做淘宝客机器人编程培训机构排名
  • 西安比较好的软件公司sem 优化软件
  • 哪个网站做男士皮鞋批发专业网站seo推广
  • 确定网站建设目标上海关键词优化的技巧
  • bbs网站建设整合网络营销是什么
  • 做网站建设的公司站长工具友链检测
  • 锐狐 网站 后台百度网址输入
  • 购买网站服务器南京seo公司