专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

掌握这七个小技巧,轻松构建优秀的WebAPI!

  创建一个好的API需要特别注意一些事情,本文介绍的7个技巧将帮助开发人员在使用ASP。NETCore时轻松创建更好的API。
  好的API由许多因素组成,包括日志、文档、性能等。随着WebAPI的流行,实现好的API是作为Web开发人员的日常工作中非常常见的任务,特别是使用Microsoft的技术,如ASP。NETCore。
  TelerikJustMock官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载慧都网Tip1:写出好的端点
  总是使用名词
  在创建端点时,总是使用名词替代动词,请看下面错误的方法和正确的方法。
  命名约定
  虽然在命名方面存在差异,但很常见的是,技术巨头的url总是使用小写字母。如果有必要使用一个由多个名词组成的单词,请尝试使用下划线()或破折号()将它们分开。示例如下:
  名词是复数还是单数?
  如前所述,应该使用名词替代动词,但常见的问题是这些名词是用复数还是单数来写。
  答案是没有正确的形式,部分开发者更喜欢用复数形式,因为这样它们表示一组可以是一个或多个的特征。当使用单数时,将端点限制为一项。
  无论您使用哪种方式,目标始终是简化。
  版本
  API在第一次发布后不断发展是很常见的,因此为同一个API创建不同版本非常重要。许多公司选择在端点中明确表示,即通过字母v版本号表示API版本。所以,通常在第一个版本中我们看到v1
  对API进行版本控制有助于系统维护,使用v1端点的系统不会受到影响,因为所有更改都在另一个端点上可用在本例中为v2。
  但重要的是要明确这不是强制性的,许多公司通常不为他们的API创建版本,在这种情况下,将创建新的API并替换就得API。
  Tip2:使用正确的HTTP动词
  首先,开发人员应该学习HTTP的基础知识。
  以下是主要的HTTP动词及其各自的功能:
  使用正确的HTTP状态码
  HTTP中一个有价值的特性是状态,这些状态在服务器响应中返回,这取决于请求中发送的操作结果,可能是命中,也可能是失败。不管结果如何,有几种类型的状态由开发人员根据情况实现正确的状态。
  例如,API通过查询字符串接收对方的id。如果数据库中存在该id,API将返回相应对方的数据。如果不是,API返回一个带有详细描述的错误。以下是两种场景:
  1。发现对方HTTP1。1200OKContentType:texthtml{status:success,data:{{idSeller:100002132,name:SellerExample,offerCode:4,smallSeller:false}}}
  2。未发现对方HTTP1。1404NotFoundContentType:texthtml{status:error,messages:〔{code:018,message:Sellernotfound}〕}
  另一个要点是返回状态的一致使用。例如,在success这个例子中,每个动词都有一个常用的模式。GET:200OKPOST:201CreatedPUT:200OKDELETE:204NoContentPATCH:200OKTip3:避免将业务规则放在端点上
  API的端点用于数据的输入和输出,因此最好的选择是创建一个类(通常称为Service),将业务规则放在其中,然后在端点上调用服务类的主方法。如下面的例子所示:
  Wrong:app。MapPost(v1products,(Productproduct,ProductDbContextdbContext){stringerrorMessagestring。Empty;if(string。IsNullOrEmpty(product。Name))errorMessageNameismandatory;if(string。IsNullOrEmpty(product。Category))errorMessageCategoryismandatory;if(!string。IsNullOrEmpty(product。Name))Results。BadRequest(Errorcreatingtheproduct);else{dbContext。Products。Add(product);dbContext。SaveChanges();returnResults。Ok();}})。WithName(CreateProduct);
  Correct:app。MapPost(v1products,(ProductServiceservice,Productproduct){varresultMessageservice。Create(product);if(!string。IsNullOrEmpty(resultMessage))Results。BadRequest(34;Errorcreatingtheproduct,errorvalidation:{resultMessage});returnResults。Ok();})。WithName(CreateProduct);Tip4:使用分页和过滤
  应用程序随着时间的推移而增长是很常见的,允许API使用者根据需要选择只获得一定数量的项是很重要的,对此的一个建议是分页。
  要实现分页而不要求数据库提供太多性能,最好的方法是提供可以切割记录集合的参数(标识符)和数量限制器。
  你可以在下面看到一个好的和坏的例子,在第一个示例中,没有分页选项或限制。在第二种情况下,可以在端点路由中注意到这些参数。
  Tip5:使运行状况端点可用
  让所有消费者都可以使用Health路由是一种很好的实践,顾名思义,该路径用于检查API的运行状况。在这种情况下,不仅API可用,而且可以检查API依赖关系并返回在每个API中获得的结果。
  例如,在需要在外部API中生成令牌的API中,开发人员可以检入运行状况端点(如果该外部API可用)并在运行状况路由中返回检查结果。
  因此,在API返回错误500(内部服务器错误)的情况下,消费者可以快速知道问题的原因可能在哪里,下面是运行状况端点的示例。
  GETv1productshealthapp。MapGet(v1productshealth,(ProductServiceservice){varexternalAPIResponseservice。ExternalAPIHealthVerify();returnResults。Ok(34;ExternalAPIresponse:{externalAPIResponse。StatusCode}{externalAPIResponse。Message});})。WithName(Health);Tip6:使用API缓存
  缓存是一种用于存储频繁使用的数据的技术,它非常有用,因为它旨在通过将数据存储在易于访问的地方来获得性能并减少web数据库服务的负载,这些地方可以是内存内缓存(服务器的内存)、持久进程内缓存(文件或数据库)或分布式缓存(多进程)。
  下面可以看到一个在ASP。NETCoreWebAPI中实现内存缓存的例子。app。MapGet(v1products,(ProductServiceservice){conststringProductsKeyProducts;if(!cache。TryGetValue(ProductsKey,outListProductproducts)){productsservice。GetAll();varcacheEntryOptionsnewMemoryCacheEntryOptions{AbsoluteExpirationDateTime。Now。AddMinutes(3),SlidingExpirationTimeSpan。FromMinutes(2),Size1024,};cache。Set(ProductsKey,products,cacheEntryOptions);}returnResults。Ok(products);})。WithName(GetProducts);Tip7:编写好的文档
  在开发API时,编写好的文档是必不可少的毕竟,开发人员将通过文档实现API的使用者。
  大公司使用彼此非常相似的模型来提供关于其API的文档,它通常是一个非常简单的网页,包含了从头开始创建的所需的所有信息。
  以下是良好文档的一些要求。对API函数做一个简单的描述,始终添加关于任何业务规则的重要细节。例如:要取消购买,您需要在下订单后等待24小时始终将请求和响应分开,对于它们中的每一个,提供HTTP谓词和要访问的路由,并在Request中发送并在Response中返回一个数据示例。如果API包含一些复杂性,请始终提供流程流程图使用图像描述流程比使用文字描述流程更直观。

江苏省普通高中学业水平合格性考试卷地理试题(四)一单选题(共84分)美国新视野号探测器于北京时间2015年7月14日19时49分,近距离飞过冥王星,成为首个探测这颗遥远天体的人类探测器。冥王星首张高清照也随之发布。读图,回答下列江苏省普通高中学业水平合格性考试卷地理试题(五)一单选题(共84分)美国新视野号探测器于北京时间2015年7月14日19时49分,近距离飞过冥王星,成为首个探测这颗遥远天体的人类探测器。冥王星首张高清照也随之发布。读图,回答下列20222023学年河南省平顶山市七年级数学第一学期期末质量检测卷附录名人名言1每一个不努力的日子就是对生命的辜负。2不逼一下自己,永远不知道自己有多优秀。3细节决定命运,态度决定高度。4一万年太久,只争朝夕。5拥有梦想的人,不做选择题,他们只做汉代时期,汉文帝废除肉刑,对当时和后世带来了什么影响?先秦将刑和罚的理念植根于刑罚体系中,构成了整个汉朝之前社会的法律体系,在尚书吕刑中对刑和罚的概念作了初步的解释,所谓的刑指的是死刑和肉刑而罚指的是赎刑,是比刑要轻的罪,其中有这样的晚清时期的婴儿塔,到底有多残忍?是封建背景下婴儿们的屠宰场在影响国人两千多年的儒家思想中,对待一般的人要保持谦和与礼仪,对待老幼,更是提出老吾老,以及人之老幼吾幼,以及人之幼的观点。然而,古往今来,对待老人苛刻的人有之,对待襁褓中的婴儿残明朝地方上的各种官职都叫什么?都是几品?都管什么?1府知府,一人,正四品府掌一府之政令,总领各属县,凡宣布国家政令治理百姓,审决讼案,稽察奸宄,考核属吏,征收赋税等一切政务皆为其职责同知,无定员,正五品府同知负责分掌地方盐粮捕盗江有人被害,还有人登基,数一数明朝有多少没能前往封国就藩的亲王前言洪武三年(公元1370年)四月初三日,大明开国皇帝朱元璋在祭告太庙之后,于奉天门及文华殿宴请群臣。期间老朱对大臣们表示,自己之所以要封建诸王,并非出于私心,而是要他们上卫国家,陈戌源的三年半,推进四项改革,却将中国足球推入深渊!从码头工人到国企高管,继而全票当选足协主席,陈戍源无疑是大多数人的天花板。2019年,带着中超冠军的王冠,陈戌源正式入主中国足协。时年,他已63,本可以颐养天年,作为旁观者,为何是吕布是三国第一神将,是怎么崛起的,最终又是怎么走向深渊的历史开讲吕布董卓吕布是中国东汉末年的一位著名将领,他的崛起主要得益于他的勇猛和机智,以及政治和军事能力。吕布出生在五原郡涿郡的一个普通家庭,根据史书三国演义的描写,吕布小时候遇到了李玉琴15岁嫁给溥仪,走过14年无性婚姻,离婚前一月首次同房1956年,李玉琴到抚顺战犯管理所看溥仪。溥仪嚼着糖一路走来,看起来很开心的样子。吃完了,又往嘴里塞一粒,嚼了半天才想起坐在对面的李玉琴,他摸出一粒扔到对面这是我们分的。那神情,像蜗居海藻李念喜怀三胎!嫁大14岁富豪老公,婚姻不输章泽天阔太李念喜怀三胎2月20日,知名女星李念在社媒上官宣自己喜怀三胎,引起了网友的热议。李念是谁?2009年,一部名叫蜗居的电视剧,轰动一时,受欢迎程度丝毫不亚于2023年的狂飙。而李
马尔康连续缺阵仍领跑射手榜,阎相闯领衔4将并列助攻榜第1中超第17轮的补赛全部战罢后,半数球队都已经踢完了前18轮比赛,中超官方也更新了目前的射手榜和助攻榜。马尔康尽管连续缺阵,但仍然以16球领跑,张玉宁和戴维森并列第2。助攻榜上,莫伊英拉真胖不少啊!和哥哥吃路边摊不摆架子,穿白T牛仔像时尚博主在环境的衬托之下,常规化的着装仍然有着活力和生机。英拉在胖了之后整个人显得更加接地气了,尤其是和格格一起吃路边摊,完全没有任何架子,身着白色的T恤搭配牛仔裤,看上去更像时尚博主。在LyKimThao的两种时尚风格,你认为哪一种风格吸引你一性感造型风格LyKimThao小姐穿超薄网眼裙和比基尼时,喜欢大胆的风格。LyKimThao身穿设计师ChungThanhPhong触地的白色网眼长裙,搭配薄木屐和大耳环。超薄的越南国际时装周盛宴,有你看不到的风景DoThiHa小姐现身越南国际时装周红毯时,因为下雨,不得不请组委会成员为她遮雨伞。DoThiHa在上围设计中展示了她外露的肩膀,穿着喇叭裙,裙上有引人注目的图案。LuongThu秃子的自我认识我是1987年出生的,今年35岁,步入了中年,在我读书时期,有次有个同学跟我说你发际线最近怎么高了,我就知道脱发这个问题将会和我产生一生的羁绊!!因为我家族从我爷爷,大伯,我爸,三超实用的方法(本人亲身实践)脸上经常长痘怎么解决?在这里想把自己的护肤经验分享给大家,本人不是什么护肤牛人,就是自己经常用的方法,确实对皮肤很好。我脸上经常会长痘,长脓包之类的比较大的痘痘,长此以往,我就摸索出来了一个好方法,缓解繁花落尽,淡月梅花,愿你孤独,而我不再深情平凡的岁月,是一阕清词,一行月白,一行风清,一行水墨染字,一行烟雨润色,你来时,苏堤春晓走时,平湖秋月。岁月的平凡,是将喜悦和忧伤,写在一行,读时泪两行是将平淡与灿烂,谱成一曲,风如何忘记一个深爱的人其实一个曾经深爱过的人,努力是忘不掉的,已经融入生命的一部分,怎能忘记?但是时间可以冲淡一切,包括一个曾经深爱的人。让时间去释怀,而不是去遗忘。这个过程是痛苦的,下面有几点或许可以北漂到底漂哭了多少人头条创作挑战赛图源网络侵删你眼中的北漂生活是怎样的呢?你是否也曾是千万北漂大军中的一员呢?你是否还漂北京为了理想努力挣扎?那么,你现在过得还好吗?北漂这是一个非常特殊的词汇,它的意农庄的秋色这年立秋后,虽然秋老虎没有如约而至,但白天气温也有35度之高。入夜虽有些凉爽,不借助空调还是闷热难耐,夜不能寐。这夜,屋里不知从何飞来了一只蚊子,关灯之后像一只幽灵似的在空中哼着小以苦酿甜生活的勇者便是不停地在苦的心里长出崭新的莲子经常去不同的地方讲座,顺便欣赏美景遍尝美食,也因此引起朋友们的艳羡。然而,我却想念以前贫苦的日子。刚结婚的时候,穷困潦倒,不得已进了货赶
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网