初次创建 API 时,我会提供的一些重要建议

使用正确的HTTPS请求方法

当定义HTTP方法对于API服务,必须使用正确的方法让用户以正确的方式进行查询。一些HTTPS方法是:

  • POST :如果最终用户要向API发送数据,请使用此方法。

  • GET:如果最终用户要在API查询数据库后检索数据,请使用此方法。

  • PUT:如果最终用户更新数据库中的现有数据,请使用此方法。

  • PATCH:如果最终用户需要更正或替换数据库中的现有数据,请使用此方法。

  • DELETE:如果最终用户从数据库中删除了任何信息或数据,请使用此方法。

假设一个外部用户想要通过发送一个 ID 来查询用户表,而您设计的 API 方法使用了 Post 方法。这将限制用户的查询,因为最终用户没有添加或创建数据,并且用户不能以他们应该能够的方式进行查询。

相反,使用 get 方法最好使用一个 ID 作为参数,它应该是这样的:

这将为用户提供使用 ID 进行查询并获取特定数据的选项。

我建议在定义方法之前了解所有的 HTTP请求 方法,并在被请求时返回正确的ID。

确保路由非常清晰,这样用户就可以快速调用我前面展示的 API 服务。

为 API 创建个好名字

  • 使用清晰、简洁的名称:

如果你想查询一个苹果的数据库,给 API 命名是没有意义的" api/fruits/"

虽然苹果是一种水果,但它不是最终用户想要的。最终用户想要一种特定的水果,所以说出它的名字API/apple/”。

  • 使用解释查询的词语:

例如,使用名词这样的词来表示API中资源的内容" API/文具/笔"。这解释了API对信纸数据库中所有笔的查询。

这将代替,例如,API/信纸/write”。

  • 避免特殊字符:

如果最终用户看到这样的API,他们可能会感到困惑“api/fruits%20?/苹果”。他们不会理解这个API是做什么的,或者它是如何查询的,或者它将获得什么信息。

必要时定义参数

除非需要,否则尽可能避免使用额外的参数。创建RestFul API时所需参数的一些示例如下:

  • 请求标题和cookies:此参数使用服务器发送到用户web浏览器的一小部分数据。

  • URL查询字符串:这些参数元素被插入到您的URL中,以帮助您过滤和组织网站上的内容或跟踪信息。

  • URL路径:这是一个必需的参数,它为最终用户或任何调用API的人提供了获取正确信息的方法,例如:"/用户/", "/users/<用户id >/" package/<包id > ".

  • 正文查询字符串/多部分:此参数设置问题或API的HTTP方法,例如邮政–用于发送数据,或–用于更新API中的数据。

那么什么时候需要参数呢?假设外部用户正在对一个API服务进行多次查询,API会查询其他服务来获取用户想要的数据。

这将降低API服务的速度,但是在这种情况下,额外的参数是有帮助的。

实现分页

当创建一个巨大的微服务并且响应体或对象变得太大时,分页使API更容易返回少量信息。

分页是一种在网站或响应对象上将数字内容分成不同页面的方法。

想象一个有70个用户的数据库。API调用获取用户而不是一次发送所有用户的响应并使其变慢。

您可以分解响应,比如返回前三十个用户,随后的三十个用户,以及后面的十个用户。不过,分页响应速度更快。

但是这违反了无状态API的属性,即外部用户在他们的终端处理会话相关信息的存储。

使用分裂

当API进行内部通信时,响应通常很短。但当它是一个大的响应时,它是一个例外,当它是一个例外时,它就有问题。

当响应超过其限制(每个响应10kb或15kb)时,会出现这种情况。这里的解决方案是将响应分解,然后一点一点地交给另一个服务。

这就像将TCP(传输控制协议)号分成片段并分发出去,这样服务就不会过载。

它将知道更多的细节还在后面,它还将有一个结束数据包,如break命令,表示当片段即将结束时,协议结束。

以下是这篇文章的一些要点:

  • 避免奇怪的字符,使用代表API响应内容的单词。

  • 当响应对象很大时,分页和分段是必不可少的。

  • 如果数据库负载很大,应该缓存请求。

  • 如果您有很多负载,减少您的响应时间,而不是将完整的信息传递给用户。只需传入必要或关键的数据。那叫做服务质量下降。它包括提供基本要素,并且仍然在不破坏API服务的情况下做出响应。

  • 当设计一个API并且你想要一个完美的数据一致性时,缓存你的响应。

最后,并不是人人都需要自己设计 API ,如果你对 API 文档、 API 测试等方面有需求的话,我推荐大家使用这个开源的 API 管理工具——Postcat,纯国产,免费的,主打插件生态,适合中小团队以及个人开发者使用,有 API 相关的核心功能。

 

目前在 Github 上 3.5 k star,如果你觉得这个项目还不错的话,不妨点个 star 支持一下~

Github:

https://github.com/Postcatlab/postcat

Postcat 核心功能:

  • API 文档管理:可视化 API 设计,生成 API 文档

  • API 测试:自动生成测试参数,自动生成测试用例,可视化数据编辑

  • 插件拓展:众多插件扩展产品功能,打造属于你和团队的 API 开发平台

  • Mock:根据文档自动生成 Mock,或创建自定义 Mock 满足复杂场景

  • 团队协作:既能实现 API 分享也能可以创建云空间共同协作

Postcat 优势:

  • 免登录即可测试:省去繁琐的验证登录的操作

  • 界面简洁:没有冗余的功能与复杂选项

  • 免费:中小团队以及个人使用

  • 丰富的插件:支持数据迁移、主题、API 安全等高达 30 款插件

  • 国产:能更好的理解国内用户的需求,与开发团队沟通无障碍

  • 完善的用户文档:跟着操作就能快速上手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值