范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

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

贵州最坑的5个景区,门票58只能看荒山,170的景交不买看不到景点越来越多的人在空闲的时候,会选择出去游玩。一般在选择外出游玩时,也需要事先做好攻略,避免进入雷区。而最近有一位游客到贵州游玩时,发现了5个最坑的景区,下面简单介绍一番。梵净山要说梵记者刘军帅宋文杰钟晋宝等加盟在即,青岛海牛引援基本完成直播吧3月18日讯根据青岛早报记者咖啡烟325的消息,刘军帅以及宋文杰即将加盟青岛海牛,球队的引援已经基本完成。继官宣许东马兴煜两名内援后,青岛海牛俱乐部在近日又顺利签下了几名内援西山国家森林公园展现花红柳绿春日画卷,最佳赏花攻略来了新京报讯(记者张璐)随着气温逐渐回升,北京西山国家森林公园内已是春意盎然,迎春山桃山杏梅花等都已含苞待放。山林间,树木舒枝展叶生出嫩芽,春花烂漫,等待人们踏青赏景。迎春迎春是春日到安康瀛湖景区获省级放心消费示范单位称号阳光讯(记者奚钦)日前,陕西文投安康文化旅游产业投资有限公司被省放心消费创建工作办公室授予省级放心消费示范单位称号,代表安康旅游景区首次获此殊荣,为进一步改善旅游消费环境提振旅游消头部租车平台数据显示2月全国整体平均出租率超过70,同比增长50租车市场火热。广州日报讯(文全媒体记者张露图全媒体记者李波)2023年的旅游出行市场,加速迈向复苏回暖的轨道。叠合正常商务出行的常态化和旅游需求勃发,租车市场延续强势反弹。汽车租赁秦晖英明的昏君崇祯皇帝明朝的末代皇帝以其年号而被称为崇祯帝的明思宗朱由检,在我国历史上的历代亡国之君中,是最受后世舆论同情乃至赞扬的一个人。清代纂修的明史称颂他承神(宗)熹(宗)之后,慨然有为。即位之初东汉末年,角斗场上的三选手陆续登场东汉中期以后,皇帝即位时大多年龄幼小。从汉和帝开始一连八个小皇帝,即位时岁数最大的8岁最小的才100多天。还有两岁就驾崩的汉殇帝,谥法短折不成日殇,活了不到两年,当然短折不成。这种假如末代皇帝溥仪没被冯玉祥赶出紫禁城,最可能的路会是怎样的?如果末代皇帝溥仪没有被冯玉祥赶出紫禁城,那么他的人生轨迹可能会有很大不同。首先,如果溥仪没有被赶出紫禁城,他很可能会继续生活在这座宏伟的皇宫中,享受到与众不同的生活。他会继续扮演皇大明王朝面对糟糕境遇,胡宗宪教你如何决策做最不坏的选择大家无论是在生活还是工作中,碰到让人挠头的事情,总想找出最佳最优的选择,以求利益的最大化,但现实往往不会给你提供最优解。大明王朝1566中,胡宗宪是名连清流都认可的能臣干将,很可惜国王权力转移至莱赫米部落时,王朝内外的部落特征是怎样的?历史开讲一发展初期的王朝内部部落特征在贾兹麦沃多哈去世之后,台努赫部落中没有能够继任王位的人,国王权力随后移交给了贾兹麦沃多哈国王的侄子阿穆鲁一世或称乌木鲁。本。阿迪。这也就意味着风雨飘摇的巴萨逐渐走回王朝?不只是一家俱乐部,这是加泰罗尼亚球队曾经的座右铭,但现在它已经是丑闻和自我破坏的代名词了。这家球队已经激怒了不少的球迷和支持者,多年来,球队的高层无情的管理着俱乐部,他们将球队变成
被小品耽误的演员贾冰,事实证明,他已走上了男演员的另一个大路这个兔年春节,扫黑大剧狂飙,在高收视率和好口碑的路上一路狂飙,一骑绝尘。大结局好几天了,很多观众还沉浸在剧情里面,全方位多角度分析剧情和表演。张译的安欣,张颂文的高启强,高叶的陈书编辑说如何是好给予当下年轻人直面生活的勇气躺平有一万条理由,努力只有一条理由。如何是好是作家阎真三十余年创作生涯里的第五部长篇小说,被称为沧浪之水姊妹篇。该书延续着他对知识分子心路历程的幽微体察,既包含了他一路走来的深刻体短评丨打造让劳动者找得到愿意进用得好的服务站点过去到处找厕所找地方充电找热水喝,现在有了驿站,随时能进去歇脚,各种服务比在家里都方便周到快递小哥刘栓龙的感慨,是西安工会爱心驿站,乃至全国工会户外劳动者服务站点发挥暖心聚力作用为瑞丰银行跌3。772021年上市募资12。3亿元来源中国经济网瑞丰银行(601528。SH)股价下跌,截至收盘报7。14元,跌幅3。77,总市值107。77亿元。目前该股股价低于发行价。2021年6月25日,瑞丰银行在上交所主板江苏第二站!茶颜悦色选在这座城继南京之后,茶颜悦色将在江苏第二城开设门店。据茶颜悦色官方,预计今年4月份,茶颜悦色将在无锡市滨湖区开设首批门店。提及选定无锡市的原因,茶颜表示,因为Ta是吴文化的重要发源地,这里产业化拓宽农业增产增收空间春节假期刚过,塞外河北承德又逢寒潮来袭,气温陡降到零下20多摄氏度。记者走进平泉食用菌产业园内的河北华素公司生产车间,眼见热气蒸腾,耳听机械轰鸣,食用菌做成的高端素肉和休闲膨化即食遏制电影盗版之风,为国产电影保驾护航刘一昂(吉林大学)今年春节档电影可谓神仙打架。科幻喜剧悬疑动画等多种电影同台竞技,票房成绩同样不俗。但与此同时,也有些不和谐因素似曾相识。满江红流浪地球25部春节档TC版(抢先版)优势产业开年添把火,江苏经济爬坡过坎增底气江苏是制造业大省,2022年11月,工业和信息化部公布45个国家先进制造业集群名单,南京市软件和信息服务集群,南通市泰州市扬州市海工装备和高技术船舶集群,苏州市纳米新材料集群等10新春走基层扎堆儿的感谢信岁末年初,那个在刘伟伟内心潜藏已久的想法再次冒了出来。作为美团公共事务总监,过去的一年,刘伟伟真切感受到了河南省郑州市市场监管局给予的帮助他想代表企业送上一封感谢信。有同样想法的,江苏南通春耕备耕正当时多措并举保丰收一年之计在于春。当前正值立春节气,农作物进入生长关键期。春节刚过,江苏南通各地农户早早进入农忙状态,抢抓有利时机推进春耕备耕工作。各级农技人员也深入田间地头,开展技术指导,促进增产继峰股份获得奥迪乘用车座椅总成项目定点e公司讯,继峰股份(603997)2月2日晚间公告,控股子公司格拉默车辆内饰(上海)有限公司(以下简称格拉默(上海))成为AudiAG(奥迪汽车股份公司,以下简称奥迪)的座椅总成供