引入休息和DreamFactory

引入休息和DreamFactory

不管你的角色在今天的IT行业,api是一个不可避免的工作的一部分。营销人员经常集成Salesforce、Pipedrive MailChimp的api为活动,而软件开发人员依赖条纹,谷歌地图,和Twitter api来构建引人注目的web应用程序。数据科学家大厅也面临着一个日益笨重的雪崩使用机器学习亚马逊公司指标,Elasticsearch和IBM EventStore api。与此同时,管理团队依靠Geckoboard,谷歌分析,Baremetrics监控公司进步和未来方向。

除了集成第三方api,你的组织可能深入参与创建内部api用于与专利数据源交互。但与上面提到的即插即用API、手动API开发是在公园里散步。这个过程是非常耗时的,容易出错,最终建立的更重要的任务分心引人注目的产品和服务。万博max手机网页登录

这一章向您介绍DreamFactory,一个REST API自动生成、集成和管理平台。您可以使用DreamFactory为成百上千的数据源生成REST api,包括诸如MySQL和Microsoft SQL Server数据库,文件系统包括Amazon S3,电子邮件交付供应商像山魈。你也可以集成第三方api,包括所有上述服务提到的在这一章的开篇。这开辟了一个全新的世界的可能性而言,构建复杂的工作流。但是在我们进入这个介绍,一些读者可能想知道什么是REST API首先,更不用说为什么那么多组织依靠休息他们的API实现。

引入其他

如果你要设计一个理想的解决方案计算机之间传递数据(“电脑”是一个涵盖性术语用来表示服务器,笔记本电脑,手机,和其他网络设备),那会是什么样子?

首先,我们可能会考虑HTTP传输协议的应用程序可以快速创建以来,通过HTTP和HTTPS通信。此外,HTTP支持请求的url构造,可以很容易地识别一个特定的目标资源(如。https://www.example.com/employees/42),请求方法,确定我们想要做的与目标资源(例如GET(检索),POST(插入),把(更新)、删除(销毁),和请求的有效载荷形式的URL参数和消息体。

我们也想把一个理解和解析XML或JSON等消息传递格式;编程语言不仅可以轻松地构建和导航这些格式,但是他们也相对容易对眼睛对我们人类。

最后,我们希望的解决方案是可扩展的,允许集成的功能,比如缓存,认证,并负载平衡。这样做,我们可以创建安全的和可伸缩的应用程序。

如果这种解决方案听起来很吸引人,那么你会喜欢使用REST api。具象状态传输(REST)是一个术语用来定义一个系统,体现(见几个特征https://en.wikipedia.org/wiki/Representational_state_transfer):

  • 客户机-服务器体系结构:通过接受客户端-服务器模型中,基于REST api的解决方案可以包含多个应用程序和数据库服务器创建一个分布式的、安全的和可维护的环境。

  • 统一的接口:休息使用HTTP url的HTTP方法,不仅和媒体类型声明为一个环境,可以很容易理解的实现者和最终用户。

  • 无国籍:所有基于rest通信是无状态的,这意味着每个客户机请求包括所有服务器都需要回应请求。目标URL, requeset方法、内容类型和API的关键只是几个例子可能包括在请求。

  • 分层系统:支持系统分层是允许容易引入中间件,允许用户身份验证和授权、数据缓存、负载平衡、和代理没有引入干扰的实现。

  • 缓存控制:HTTP响应可以包括信息指示是否可缓存响应数据,确保中介环境不要错误地服务于陈旧的数据,同时允许上升趋势。

现在你更了解REST架构,让我们回顾一些典型REST请求和响应。

解剖REST请求和响应

REST API集成商花大量的时间了解如何生成适当的休息请求,以及如何解析响应。正如已经讨论的,这些请求和响应围绕HTTP url, HTTP方法,请求有效载荷和响应格式。在本节中,您将学习更多关于每一个的角色。如果你不熟悉这些剩余的概念,然后花几分钟了解他们将大大减少时间和精力,否则你就需要在后来越来越熟悉DreamFactory。

检索资源万博手机登录平台

一个合适的REST API URL模式的实现是一个围绕着资源(名词),和树叶任何指示所需的行动(动词)相应的HTTP方法。考虑以下要求:

GET / api / v2 /员工

如果找到端点和记录存在,服务器将应对一个REST API200年状态码和json格式的结果。例如,这里有一个例子DreamFactory返回的响应:

{“资源”:[{" id ": 1、“first_name”:“格奥尔基”、“last_name”: " Facello "}, {" id ": 2,“first_name”:“比”、“last_name”:齐美尔”“}…]}

这清晰的代表是一个典型的REST请求;基于方法和URL,它非常清楚客户要求雇员的列表。我们知道客户想要检索记录,因为提交请求使用得到方法。与之形成对比的是,以下的要求:

GET / api / v2 /员工/找到

这不会是RESTful因为实现者合并操作URL。回到原来的模式,考虑如何要求一个特定的员工:

GET / api / v2 /员工/ 42

添加一个ID(通常但不总是一个资源的主键)表明客户端检索相关的员工记录感兴趣已经指定了一个惟一标识符的值42。JSON响应可能会看起来像这样:

{" id ": 42岁,“first_name”:“Claudi”、“last_name”:“Kolinko”}

许多REST API实现,包括DreamFactory,支持通过查询参数修改查询行为。例如,如果您想要检索的first_name当检索资源,然后DreamFactory支持字段这样做的参数:

GET / api / v2 /员工/ 42吗? = first_name字段

响应会看起来像这样:

{“first_name”:“Claudi”}

得到请求幂等,这意味着无论你多少次提交请求时,相同的结果可以预期,在无副作用。与之形成对比的是,帖子请求(介绍下),它被认为是创造的非幂等性,因为如果你提交相同的资源请求不止一次,可能是重复的资源将被创建。万博手机登录平台

创建资源万博手机登录平台

如果客户想要插入新记录员工表,然后帖子方法将使用:

POST / api / v2 /员工

当然,请求需要伴随着要创建的数据。这将是传递通过请求主体和看起来像这样:

{“资源”:[{“first_name”:“约翰尼”,“last_name”:“足球”}]}

更新资源万博手机登录平台

HTTP支持两种不同的方法来更新数据:

  • :方法取代现有资源。这意味着你需要传递所有无论资源属性的属性值实际上是被修改。
  • 补丁:补丁方法更新只有部分的现有资源,这意味着你只需要供应资源主键和您想要更新的属性。这通常是一个更方便的更新方法,但可以肯定的是都有他们的优势。

当更新资源万博手机登录平台你发送一个请求一样:

把/ api / v2 /员工

你会发送所有资源的属性在请求负载:

{“资源”:[{" id ": 42岁,“first_name”:“约翰尼”,“last_name”:“棒球”}]}

而不是更新一个或多个(但不是全部)属性关联到一个特定的记录中发现的员工资源,你会发送一个补丁请求员工URL,伴随着主键:

/ api / v2 /员工/ 42

假设员工包括属性如表first_name,last_name,employee_id,但我们只是想修改first_name价值。JSON请求的身体看起来像这样:

{“资源”:[{“first_name”:“保罗”}]}

删除资源万博手机登录平台

删除资源,你会发送一个删除请求的端点与资源相关的你想删除。例如,删除一个员工资源你会参考这个网址:

删除/ api / v2 /员工/ 42

引入DreamFactory

根据我们讨论到目前为止关于实现REST API,实现一个自己的想法可能听起来很吓人。应该,因为它是。这样做,不仅你会负责构建所需的逻辑方法和处理请求url,但是你也为集成身份验证和授权,生成和维护文档,如何理智地为任何第三方数据源生成api工作。

这仅仅是开始你的挑战。随着需求的增长,所以将复杂性。考虑所需的工作量将每个端点的业务逻辑功能添加到您的API。或螺栓API的限制功能。每个服务API或添加日志记录。构建和维护所需的工作量可以惊人的这些特性,和一定会让你和你的团队的更重要的目标通过创造优质的产品和满意的客户服务。万博max手机网页登录

幸运的是,一个惊人的选择存在。DreamFactory是处理一个API自动化解决方案所有这些挑战的你,在大多数情况下是通过一个简单的点击web界面。本章的最后,我们将调查DreamFactory的关键特性,给你你需要的所有信息确定DreamFactory是否值得您添加到组织的开发工具包。

自动REST API生成

尽管DreamFactory挤满了许多特性,一切围绕着平台的自动化的REST API生成功能。这个功能本身就能产生如此巨大的影响,它会保存您的团队周——如果不是数月API项目开发时间的未来!

DreamFactory几十个数据库的本地API支持自动生成功能(其中包括甲骨文、MySQL、MS SQL Server和MongoDB)、文件系统、电子邮件交付提供者、移动通知的解决方案,甚至源代码控制服务。此外,它可以将SOAP服务转换为其他没有任何重构需要SOAP代码,创建REST api的缓存解决方案如Memcached和复述,甚至支持脚本从头开始使用一个全新的服务支持的四个脚本引擎(NodeJS、PHP、Python和V8)。

REST端点的结构和数量通过每个生成的API公开显示不同数据源的类型,但是你可以指望他们”功能完整的“从可用性的角度来看。例如,REST api生成一个受支持的数据库包括端点执行存储过程执行CRUD(创建、检索、更新、删除)操作,甚至管理数据库!

从一开始就获得了api

DreamFactory REST api都是安全的默认情况下,留下没有任何机会对你有价值的数据被恶意第三方接触甚至修改那些发生在API。至少所有客户都必须提供一个API密匙DreamFactory平台管理员通过管理控制台将生成。

进一步,可以锁定API使用DreamFactory的关键功能角色特性。使用角色管理功能,您可以限制一个API密匙的能力与一个API,允许访问只有几个选择端点,或限制访问得到方法(这意味着您可以创建一个只读API)。

DreamFactory远远超越API密钥的身份验证的安全特性。你可以要求用户登录通过各种解决方案,包括基本身份验证、LDAP、Active Directory,单点登录(SSO)。一旦成功登录,用户被分配一个会话令牌将被用来验证所有后续请求身份验证状态。

交互式OpenAPI文档

开发人员当然会想开始集成API为新的和现有的应用程序,因此需要一个深入了解的端点,输入参数,和响应。DreamFactory自动为您创建该文档的生成同时API是自动的。下面的屏幕截图展示了一个例子的文档由DreamFactory与MySQL REST API:

文档远远超出仅仅是呈现一个端点列表。当你将学习在以后的章节,你可以点击这些端点并与之交互的API。进一步,DreamFactory管理员可以创建用户帐户的独家授权访问文档,而阻止这些账户实施其他管理任务。

业务逻辑集成

通常情况下,你需要调整你的行为api,例如验证传入的输入参数,调用其他api请求/响应工作流程的一部分,或转换响应结构之前返回给客户端。DreamFactory脚本特性允许您将逻辑到任何端点,运行它在请求或响应方面的沟通(或两者)。您可以使用任何支持的四个脚本引擎,包括NodeJS、PHP、Python或V8脚本引擎。使用这些脚本引擎结合各种DreamFactory数据结构可用这些端点,天空是极限的你调整你的API行为的能力。

API的限制

组织花了几个月甚至几年聚合和组织有价值的数据,最近你的客户和其他组织要求能够访问它。这通常是通过货币化API,分配客户基于卷的访问按照特定的定价方案。

DreamFactory API的限制功能允许您将基于卷的限制与一个特定的用户,API键,REST API,甚至一个特定的请求方法。一旦启用,DreamFactory将实时监控配置,返回一个HTTP 429状态码(太多的请求),客户一旦达到极限。虽然提供了一个方便的web界面来管理你的API的限制,也可以以编程的方式管理这些API的限制,意味着可以限制管理集成到您的SaaS应用程序!

API日志记录和报告

您的组织是否需要遵循欧盟的总体数据保护监管(GDPR),或者你想保持密切关注您的REST API请求量和行为,你要整合一个健壮的和详细的API日志记录和报告的解决方案。幸运的是,DreamFactory插入Logstash是强大的麋鹿的一部分(Elasticsearch、Logstash Kibana)堆栈。这个神奇的集成允许您创建仪表板和报告提供API关键活动的实时监控,HTTP状态代码和数以百计的其他指标。

结论

这就是了;REST api和DreamFactory平台的全面概述,整齐打包成本指南的章。如果这个REST API生成和管理方法听起来也吸引过去了,锐意进取,第二章,你将学习如何下载、安装和配置DreamFactory平台!

Baidu
map