Postman:简化API开发和测试的强大工具
要点:
- Postman是一款强大的工具,简化了API开发和测试流程,提供保存以往API调用和将相关API调用分组等功能,方便快捷。
- API(应用程序编程接口)通常使用REST(表述性状态转移)框架创建,该框架为基于Web的API设置了指南。通过API执行的四个最常见的操作是查看、创建、编辑和删除对象。
- API测试是开发过程中至关重要的一部分,用于确保功能、异常处理和安全性。这可以通过使用cURL库的命令行来完成,但像Postman这样的工具可以使此过程更容易。
- Postman可用于向API(如Facebook Graph API)发送请求,允许开发人员查看帖子、点赞帖子、创建帖子和删除帖子等操作。此工具对于使用API的开发人员来说可能是一项宝贵的资产。
感谢Jeff Smith的帮助,他热心参与了本文的同行评审。
SitePoint网站今日热门文章:
- 什么是HTTP/2?
- 使用这三种CSS方法来驯服难以驾驭的样式表
- 您的常规WordPress维护清单
- 共享服务器托管:优缺点
- 为什么每个网站都需要HTTPS
API(应用程序编程接口)是应用程序之间交互的媒介。使用HTTP或HTTPS的API称为Web API。
如果您环顾互联网,就会发现大量服务使用API。任何具有社交登录的服务都使用API;电子商务网站的移动应用程序使用API;甚至您在互联网上看到的广告也使用API!
通过为您的服务创建API,您可以使第三方开发人员能够基于您的服务创建应用程序。例如,社交新闻网站Frrole使用Twitter API通过分析大量推文来生成上下文洞察。
假设您已经评估了创建API的优缺点,那么让我们简要讨论一下创建和测试API的过程。
创建API
虽然创建API的方法有很多,但Web API是使用REST(表述性状态转移)框架创建的。REST框架规定了一组在创建API时必须遵循的准则。由于每天创建的API数量众多,它成为基于Web的API的标准。
通过API执行的四个最常见的操作是查看、创建、编辑和删除对象。REST框架将四个HTTP动词映射到这些操作:GET、POST、PUT和DELETE。此列表中添加了许多动词,例如PURGE和PATCH,但在本文中,我们将只讨论四个基本动词。Enchant.com创始人Vinay Sahni撰写的关于务实RESTful API最佳实践的文章可能对首次开发人员很有用。
如今,许多框架都提供了对基本HTTP层的包装器,从而使您的开发工作更加轻松。您只需调用所需的命令或函数并专注于功能即可。流行的示例包括Slim和Toro,这两个基于PHP的微型框架可以帮助您快速创建REST API。
通过CLI测试API
创建API的主要目的是使其他应用程序(可能是您自己的或由第三方开发的)能够使用这些服务。因此,在API开发过程的每个阶段,至关重要的一步是测试API的功能、异常处理和安全性。
使用API涉及使用其中一个动词(或方法)向所需资源(通常是URL)发出请求。根据您使用的API的要求,您可能需要添加标头。请求此类资源的一种方法是通过命令行。
在这篇文章中,我们将重点关注API调用的四个部分——URL、HTTP动词、标头和参数。我们将使用cURL库通过CLI向API资源发送请求。cURL是一个命令行工具,它有助于使用URL语法传输数据——支持FTP、FTPS、HTTP、HTTPS。
让我们来看一下以下命令:
<code>curl -i -X POST -H "Content-Type:application/json" http://www.my-api-example.com:port/ -d '{"Name":"Something"}'</code>
-i命令代表include,它告诉命令请求中存在标头。-X选项紧跟HTTP动词或方法。-H指定添加到请求的自定义标头。最后,-d选项指定要与请求一起传递的自定义表单数据。
API调用的结果是HTTP响应,通常以JSON格式编码。响应与HTTP响应代码一起提供,该代码提供有关请求状态的信息(例如,200表示OK,404表示资源不存在,500表示服务器错误,403表示资源被禁止)。例如,以下响应可以作为对先前请求的结果发送,以及200状态代码:
<code>{"message":"success","id":"4"}</code>
在命令行内测试此类响应也构成挑战,尤其是在响应具有大量选项的情况下。
Codingpedia的这篇详细指南列出了测试API时的CLI选项列表。
使用Postman简化测试
Postman是一个具有强大功能的API开发套件,可以使API开发过程快速而轻松。它可以作为Chrome扩展程序和Mac、Windows和Linux的原生应用程序使用。一百多万开发人员已经尝试过它。要安装Chrome扩展程序,您需要首先安装Chrome,然后转到Chrome网上应用店的项目页面。
让我们首先了解如何通过Postman模拟我们之前的CLI请求。以下图像显示了在Postman中创建API调用,其中包含上面讨论的所有四个部分:
除了预览(如果响应为HTML)之外,您通过请求收到的响应也可以以原始或漂亮的形式查看。下图显示了在Postman中查看响应的不同方法:
Postman会自动保存您过去进行的API调用,这在测试API时可以节省时间。此外,它们可以分组到相关的API调用中,以方便您使用。以下是通过Postman进行的API调用历史记录示例:
通过Postman使用Facebook Graph API
演示Postman工作原理的一个好方法是通过Facebook Graph API。在这篇文章中,我们将重点关注用户时间轴上的帖子,如何查看帖子的详细信息,以及如何创建和删除帖子。
在使用Graph API时,访问令牌至关重要。令牌与许多权限相关联。例如,只有在生成令牌时publish_actions是所选字段之一时,您才能使用令牌创建帖子。这种额外的安全级别可以帮助您在通过Facebook登录时向给定应用程序授予特定操作。
查看帖子
要向Graph API发送请求,您需要生成访问令牌。生成令牌后,您应向以下URL发送GET请求,并将access_token作为参数:
<code>curl -i -X POST -H "Content-Type:application/json" http://www.my-api-example.com:port/ -d '{"Name":"Something"}'</code>
下图显示了带有您详细信息的基本Graph API调用:
您可以通过以下命令检查您时间轴上的帖子列表:
<code>{"message":"success","id":"4"}</code>
以下是您时间轴上的帖子列表的详细信息可能显示的方式:
要查看单个帖子的详细信息,请使用以下资源:
<code>GET /me/</code>
单个帖子的详细信息如下所示:
点赞
要点赞,只需向以下URL发送POST请求(请注意,点赞需要publish_actions):
<code>GET /me/feed/</code>
通过Postman发送点赞请求如下所示:
同样,您可以通过向同一URL发送DELETE请求来删除点赞:
<code>GET /post-id/</code>
创建帖子
要创建帖子,您需要除了POST请求之外还要发送一些参数。您也需要publish_actions才能执行此操作。
您可以将以下选项添加到您的POST请求中:
- message:与帖子关联的消息
- link:指向外部资源的链接
- place:与帖子关联的位置(类似于“签到”某个位置)
- tags:任何朋友或页面
- privacy:帖子可见的受众
- object_attachment:任何现有的Facebook帖子
文档解释了所有这些功能的使用方法。
您可以根据您选择发送请求的URL,在您自己的时间轴或用户、页面、事件或群组的时间轴上创建帖子:
<code>curl -i -X POST -H "Content-Type:application/json" http://www.my-api-example.com:port/ -d '{"Name":"Something"}'</code>
让我们尝试发布到我们自己的时间轴。如果请求成功,我们将获得已创建帖子的ID。以下是使用Graph API创建新帖子的示例:
要编辑帖子,您需要向以下URL发送POST请求(而不是PUT),并使用与创建帖子相同的参数:
<code>{"message":"success","id":"4"}</code>
删除帖子
就像删除点赞一样,删除帖子需要您向帖子URL发送DELETE请求:
<code>GET /me/</code>
注意:我们在本文中看到Postman有很多有用的功能。升级免费版本后(单个许可证9.99美元),还有更多功能——例如在多个数据值上运行API集合。
结论
创建API是一项至关重要的任务,其中涉及许多重要的步骤。Postman使彻底测试的过程更加容易。目前,Postman似乎很好地解决了普通开发人员的问题。但是,它如何随着Web行业中常见的范式转变而发展还有待观察。
我们是否错过了Postman的重要功能?您是否使用其他客户端来测试API?请在下面的评论中告诉我们。
关于使用Postman构建和测试API的常见问题
什么是Postman,它如何帮助构建和测试API?
Postman是开发人员用于构建和测试API的流行工具。它提供了一个用户友好的界面,可以轻松发送HTTP请求和查看响应。Postman支持各种类型的HTTP请求,例如GET、POST、DELETE、PUT等等。它还允许您保存请求并将它们组织到集合中,以便轻松访问和共享。Postman内置的测试功能允许您直接在工具本身中为您的API编写测试,使其成为API开发的综合解决方案。
Postman是否免费使用?
Postman提供免费版和付费版。免费版本,称为Postman Basic,提供了一套强大的功能,足以满足个人开发人员或小型团队的需求。对于需要高级功能和协作能力的大型团队或企业,Postman提供付费计划。
Postman Pro与基本版本有何不同?
Postman Pro是一个付费版本,提供基本版本中没有的附加功能。这些包括团队协作、API监控、高级API文档等等。它专为需要管理复杂API开发项目的专业开发人员和团队而设计。
如何购买Postman?
您可以从他们的官方网站购买Postman。他们根据您的团队规模和特定需求提供不同的定价计划。您可以选择适合您需求的计划,然后按照提示完成购买。
Postman在软件开发中的作用是什么?
在软件开发中,Postman在API开发和测试中发挥着至关重要的作用。它允许开发人员在一个平台上构建、测试和记录API,从而简化开发过程。它还支持协作,使团队更容易一起处理API项目。
我可以使用Postman进行自动化测试吗?
是的,Postman支持自动化测试。您可以在Postman中为您的API编写测试,并使用Postman的Collection Runner或Newman(Postman的命令行工具)自动运行它们。这使得将API测试集成到您的持续集成/持续交付(CI/CD)管道中变得更容易。
如何在Postman中组织我的API请求?
Postman允许您将API请求组织到集合中。集合是一组可以一起保存的相关请求。这使得管理和共享您的请求变得更容易。您还可以向集合中添加文件夹以进行进一步的组织。
Postman是否支持不同类型的身份验证?
是的,Postman支持各种身份验证类型,包括Basic Auth、Bearer Token、OAuth 1.0、OAuth 2.0等等。这使其成为测试具有不同身份验证要求的API的多功能工具。
我可以与他人共享我的Postman集合吗?
是的,Postman允许您与他人共享您的集合。这对于团队协作特别有用。如果您使用的是付费版本,则可以通过将其导出为JSON文件或直接从Postman共享来共享集合。
如何有效地学习使用Postman?
有很多资源可以学习Postman。Postman官方网站提供全面的文档和教程。还有许多在线课程、博客和论坛,您可以在其中学习其他Postman用户的经验。
以上是API建筑和测试使Postman变得更加容易的详细内容。更多信息请关注PHP中文网其他相关文章!

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

此基于GO的网络漏洞扫描仪有效地确定了潜在的安全弱点。 它利用了GO的并发功能的速度功能,包括服务检测和漏洞匹配。让我们探索它的能力和道德


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6
视觉化网页开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),