REST-的十个最佳实践-API-构建强大 (rest的过去形态)
在项目开发中,REST 风格的 API 设计非常普遍。以下 10 条最佳实践旨在为你的 REST API 提供灵感和指导。
1. 使用具体且有意义的资源名称
选择准确表示所代表实体的资源名称,避免使用泛化或模糊的名称。例如,使用 "users" 而不是 "people"。
2. 正确使用 HTTP 方法
根据不同的操作使用合适的 HTTP 方法,例如 GET、POST、PUT、DELETE 和 PATCH,并严格遵循其定义。
3. 对 API 进行版本控制
通过版本控制确保向后兼容性,并在不破坏现有客户端的情况下进行未来的增强。区分不同版本的 API 端点,例如 "v1" 和 "v2"。
4. 正确使用 HTTP 状态码
返回适当的 HTTP 状态码以指示 API 请求的成功或失败。例如,200 表示成功,404 表示未找到,500 表示内部服务器错误。
5. 选择 JSON 字段命名约定
JSON 标准没有强制规定字段命名约定,但最佳实践是选择一个并坚持使用,例如驼峰式命名法或下划线命名法。
6. 使用一致的错误信息
在 API 请求失败时,仅返回 HTTP 状态码通常不够。提供一个结构化的 JSON 错误消息,其中包含以下信息:
- 错误代码
- 错误消息
- 可选:详细错误信息
7. 使用查询参数进行过滤、排序和搜索
查询参数允许你在 HTTP 请求的 URL 中提供额外的信息,以控制服务器返回的响应。例如,你可以使用查询参数 "page" 和 "limit" 进行分页。
8. 实施身份验证和授权
通过实施适当的身份验证和授权机制来保护你的 API。可以使用 JWT 令牌或 API 密钥等方法。
9. 不要维护状态
RESTful API 应该是无状态的,不应在服务器上维护状态。客户端负责管理会话和状态信息。
10. 文档化你的 API
为你的 API 提供全面的文档,包括端点的详细信息、请求/响应示例和使用指南。这对于 API 的可理解和可维护性至关重要。
建议
除了这些最佳实践之外,以下建议也有助于创建高质量的 RESTful API:
- 使用 RESTful 架构风格
- 采用基于 HATEOAS 的设计
- 根据需要使用 HTTP 标头
- 遵循 RESTful API 设计指导方针
- 不断监控和优化 API 性能
通过遵循这些最佳实践,你可以创建高效、可维护且易于使用的 RESTful API,从而为你的用户提供卓越的体验。
2020年Web前端工程师的学习建议
今天小编要跟大家分享的文章是关于2020年web前端工程师的学习建议。 毫无疑问,前端开发将成为2020年技术领域最热门的学科之一。 以前,前端空间的开发人员只要了解一些HTML,CSS,也许还有jQuery来创建交互式网站,就足够了。 但是今天,他们面临着广泛且不断变化的开发技能生态系统;掌握的工具,库和框架;并且需要不断投资于个人教育。 最近几年,我们使用JavaScript为主要的Web应用程序提供了强大的新库和框架,例如ReactJS,VueJS和Svelte。 想要学习web前端知识的小伙伴们来和小编一起看一看吧!1.框架2020年,我们可能会看到Facebook的ReactJS与社区驱动的VueJS之间的对决。 目前,React在GitHub上拥有140,000星,而Vue则拥有153,000星。 例如,Angular只有53,000个恒星。 在2019年,React(蓝线),Vue(红线),Angular(黄线)和Svelte(绿线)的搜索量支持此假设-Vue略高于React。 Angular在搜索量方面无法跟上,Svelte在此比较中绝对不起作用。 因此,对于2020年,使用或希望使用JavaScript框架的前端开发人员应将React和Vue作为他们的主要选择。 如果您正在处理大型企业项目,则Angular是有效的选择。 2.静态网站生成器静态站点生成器结合了服务器端渲染的功能(对于SEO非常重要,而且还具有初始加载时间)和单页应用程序。 如今,许多项目即使不需要服务器端渲染也选择了SSG,因为Next或Nuxt之类的解决方案具有便捷的功能,例如模块捆绑器,集成测试运行器等。 如果您认真对待前端开发,则应仔细研究以下项目,并尝试获得一些实践经验:·Next(基于React)·Nuxt(基于Vue)·Gatsby(基于React)·Gridsome(基于Vue)术语JAMstack代表JavaScript(在客户端上运行-例如,React,Vue或VanillaJS),API(服务器端进程通过JavaScript通过HTTPS抽象并访问)和标记(在部署时预先构建的模板标记)。 。 这是一种构建网站和应用程序以提高性能的方法-降低扩展成本,提供更高的安全性并提供更好的开发人员体验。 尽管这些术语本身并不是什么新鲜事物,但它们的共同点是相同的-它们并不依赖于Web服务器。 因此,依赖于Ruby或后端或使用服务器端CMS(例如Drupal或WordPress)构建的网站的单片应用程序不是使用JAMstack构建的。 如果要使用JAMstack,有一些最佳实践:整个项目都在CDN上提供服务由于不需要服务器,因此整个项目都可以通过CDN进行服务,从而释放出无与伦比的速度和性能。 一切都存在于在Git中每个人都应该能够从Git存储库克隆整个项目,而无需数据库或复杂的设置。 自动化构建您可以完美地自动构建,因为所有标记都是预先构建的,例如使用webhooks或云服务。 原子部署为了通过在大型项目中重新部署数百或数千个文件来避免出现不一致的状态,原子部署将等待所有文件上传,然后再进行更改。 即时缓存失效当站点上线时,必须确保CDN可以处理即时缓存清除,以使更改可见。 像Netlify或Zeit这样的著名主机都支持JAMstack应用程序,大公司使用它们为用户提供出色的体验。 渐进式Web应用程序(PWA)无疑将在2020年成为现实。 越来越多的公司选择PWA取代本机应用程序,以便为用户提供丰富的移动体验。 PWA可靠(即时加载,无需连接互联网即可工作),快速(流畅的动画,对用户交互的快速响应)和吸引人的体验(本机应用程序的感觉,出色的用户体验)。 他们利用服务人员提供脱机功能,并利用Web应用清单文件提供全屏体验。 构建渐进式Web应用程序的原因有:·可以从浏览器添加到用户的主屏幕·即使没有互联网也能正常工作·支持网络推送通知以增强用户参与度·利用Google的Lighthouse功能是当前最热门的主题之一,并且绝对是您在2020年需要学习或改进的东西。 尽管REST通过提供无状态服务器之类的出色概念一直被认为是设计WebAPI的事实上的标准,但在跟上快速变化的客户端访问RESTfulAPI时,RESTfulAPI却越来越不灵活。 GraphQL由Facebook开发,旨在解决开发人员在处理RestfulAPI时面临的确切问题。 使用RESTAPI,开发人员可以通过从具有特定目的的多个端点(例如/users/端点或/tours//location端点)中获取数据来收集数据。 使用GraphQL,这将以不同的方式工作。 开发人员会将查询与他们的数据要求一起发送到GraphQL服务器。 然后,服务器将返回带有所有相应数据的JSON对象。 使用GraphQL的另一个好处是它使用了强类型系统。 GraphQL服务器上的所有内容都是使用GraphQL模式定义语言(SDL)通过模式定义的。 创建架构后,前端开发人员和后端开发人员都可以彼此独立地工作,因为他们知道已定义的数据结构。 6.代码编辑器/IDE与2019年一样,微软的VSCode将在2020年成为大多数前端工程师的第一编辑器。 它提供几乎类似于IDE的功能,例如代码自动完成和语法高亮显示,并且可以通过其扩展市场进行几乎无限的扩展。 特别是市场使VSCode如此出色。 以下是您作为前端开发人员的一些出色扩展:·JavaScript(ES6)代码段·npm·beautify·CSS速览·ESLint·LiveSass编译器·Chrome调试器这些是很酷的例子。 在VSCode中还有很多可以发现的地方,因此,如果您尚未使用它,我建议您尝试一下。 7.测试未经测试的代码不应找到它的生产方式。 在您的个人项目中似乎没有任何测试似乎很方便,但在商业和企业环境中工作时必须进行测试。 因此,对于任何开发人员而言,最好尽可能将测试集成到开发工作流程中。 可以区分以下测试用例:单元测试隔离测试单个组件或功能。 整合测试测试组件之间的交互。 端到端测试在浏览器中测试功能完善的用户流。 有更多测试方法,例如手动测试,快照测试等。 如果您想升任高级开发人员职位或打算在拥有某些开发标准的大型公司工作,则应尝试进行测试技能。 8.干净的代码能够编写干净的代码是一项很棒的技能,许多组织都对此提出了很高的要求。 如果您想从开发人员的位置升级为高级开发人员的位置,则应真正学习干净代码的概念。 简洁的代码应优雅且易于阅读。 它应该重点突出,您应该注意这一点。 所有测试均以纯净代码运行。 它们不应包含重复项,应尽量减少使用实体(例如类,方法和函数)。 干净代码开发人员应做的一些事情是:·为变量,类,方法和函数创建有意义的名称·函数应该很小并且参数应尽可能少·根本不需要注释-代码应该说明一切如果您想了解有关干净代码检查的更多信息,请阅读的书籍和帖子。 毫无疑问,Git是当今Web开发中版本控制的标准。 对于每个前端工程师而言,了解基本的Git概念和工作流程以在各种规模的团队中有效工作都是非常重要的。 这是您应该知道的一些流行的Git命令:gitconfiggitinitgitclonegitstatusgitaddgitcommitgitpushgitpullgitbranch知道这些命令可以提高工作效率总是很高兴的,但是前端工程师还应该学习Git的基本概念。 10.软技能对于开发人员来说,经常被忽视但确实非常重要的是获得软技能。 虽然有助于了解事物的技术方面,但了解如何在团队中进行交流也同样重要。 如果您对技术职业很认真,并且/或者打算升任高级职位,则应该从事以下软技能方面的工作:同情沟通团队合作平易近人和乐于助人忍耐开放的思想解决问题责任心创造力时间管理永远记住:开发人员最重要的交付物是高级开发人员。 (提升你自己)结论在本文中,小编向您展示了前端开发人员应在2020年尝试学习,改进或掌握的10项重要内容。 想要了解更多web前端相关知识记得关注北大青鸟web前端培训官网,最后祝愿小伙伴们工作顺利,成为一名优秀的web前端工程师。
如何结合REST和JSON构建API
转载构建web可访问应用编程接口很简单,但使之良好工作,而且不间断却不简单,Les Hazlewood在2013年JavaOne大会上如此说,他是Stormpath的首席技术官。 Hazlewood在大会上展示了通过JAX-RS和Jersey构建美好的REST+JSON API的最佳实践。 “表面看来,良好的REST API很简单,即使后端很复杂,” Hazlewood在一次采访说到。 一个API关注一系列的东西,以及如何表现个人的东西。 减少API集合,搜索所有书籍和出版刊物,你会发现一个简洁的解决方案,它很直观,且不是太复杂。 在本文中,Hazlewood深入打探讨了API最佳实践、REST API和JSON的优缺点等等。 使用REST API时,什么是开发人员需要探索的?Les Hazlewood:REST作为架构式构建存在于HTTP的最顶层。 你交换数据的方式、你创建、读取、更新和删除数据的语义都建立在HTTP规范之内。 REST是用于编纂当交换跨分离机器创建读取-删除时的工作环境如何。 这就是REST,编纂这些跨分离机器的行为发生的方式。 因为它依赖于HTTP,我可能有一台Linux机器,它可以与Windows机器时行对话,也可以与Mac机对话。 它并不是平台或厂商特定的。 因为HTTP无处不在,所以REST就无处不在。 所有语言(Python、PHP、Java和C#)都可以与REST一起工作。 REST简化了所有方面。 所有人都以为他们了解了HTTP。 这正是你的浏览器所讲的东西。 他们知道HTTP协议、知道GIT、知道POST,因为他们多年以来一直在填写web表单。 所以因为REST只使用HTTP,开发人员就认为它很简单,但是现在REST服务越来越多,而不是XML,它融汇的SOAP。 使用REST的难点在哪?Hazlewood::这正是我要做的演讲原因。 REST是架构样式,但是使用它的方法论还没有正式的标准和规范。 用样式来解释一下。 我认为它的运行方式可能会与你以为稍微有点不同。 因为它不是一个机器可以复制的规范,这里掺入了人为的因素。 把东西变得简单易用的漏洞往往都不简单。 REST和JOSN很简单。 HTTP很简单。 但要确保使用两者解决问题时,要直观,而不是随处都可编码化。 你推荐JSON和REST一起使用的其它原因还有什么?Hazlewood:REST和JSON提供了与人友好的数据表述方法;数据不再像XML那样拥挤;你的肉眼就可以很容易看到。 这一直都是广泛采用JSON的原因。 JSON是语法规范。 它只是定义了基本的字符串、数字、空值、非空值。 它允许你以一种简单的模式表述复杂的事情,而且以最小的元数据量。 它如此的篇章,可以用于许多不同的环境中。 机器很容易对其进行解析。 人们也很容易阅读。 JavaScript是世界上一个占有重要位置的编程语言。 即使主要的应用是由Java、Python或C#构建的,比重也很高,如果你有一个网页,或一个可视的用户界面,那么就会涉及到一些JavaScript。 JSON与JavaScript兼容。 所有具备JavaScript编程经验的人都会发现他们很容易就会了解JSON。 如果你已经使用了JavaScript,那就能很轻松地与API集成。 如果API返回给JSON,而且你已经编写的JavaScript,那么你的编程语言就已经知道如何与返回给服务器的数据进行交互。 JSON使用JavaScript进行数据交换,而不只是编写软件,这在当前已经很流行了,什么时候使用JSON正确,什么时候错误?Hazlewood:显然,XML在结构化表述数据上更好。 XML文档中包含更多的信息,类型在XML文档中表述会更有效。 XML非常适合数据交换,但易用性方面却使用开发者犹豫了。 JSON用肉眼就可以检查。 XML在设计上更复杂。 JSON是非常简单的语法。 谈到语言设计,JSON只构建了一小部分的核心元素,而且一切都源于这一小部分元素。 因为它的简单性,它很容易操作,也很容易理解。 与XML相比,JSON并不是很适合机器消化信息。 从这点来看,XML就会做的更好。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。