关于API的总结
由于对API的了解不足,所以我重新学习了它。如果有错误的地方,请务必告诉我。
我参考了以下网站:
https://www.itmanage.co.jp/column/application-programming-interface/
https://dog.ceo/dog-api/
https://www.redhat.com/ja/topics/api/what-is-graphql
API是什么?
– API,即应用程序编程接口。
– 它是用于调用目标操作系统、共享软件或应用程序的一部分的连接接口。
– 可以使用其它服务提供的功能,而无需从头开始创建数据库,只需获取所需信息,还可以使用在其他服务中使用的帐户进行登录身份验证等,非常方便。
根据 https://dog.ceo/dog-api提供的参考,存在一个公开发布了大量狗狗图片数据的网页应用(https://dog.ceo/dog-api)。通过将其网站内所提供的URL复制粘贴,就可以在自己的网站上调用其中的狗狗图片。这个URL部分就是API。
网络应用程序接口
网络API和API有什么区别?
Web API是用于调用在Internet上公开的Web服务的API,它通过HTTP和HTTPS通信进行交互。即使编程语言不同,它们之间也可以进行交互。它也被称为云服务。https://dog.ceo/dog-api就是一个很好的例子吧?
除了Web API以外,API的类型还包括原生API,运行时API,库API,数据库API等等,它们涵盖了各个领域。所以可以将Web API看作是API这个大框架中的一部分。
网络API的类型
有些东西可以在网上使用,而有些则被保密了。
开放式应用程序接口
这是指可以从其他应用程序调用和使用应用程序中的功能和数据的连接,并且它也对其他公司开放。
例如:Twitter API,连接地址和邮政编码的服务,由邮局提供等等。
合作伙伴 API
注册用户可以使用的,仅对部分人员公开的API。
例如:销售合作伙伴API。
封闭式API
API在企业或团体内部使用,或在与其合作的合作伙伴企业中使用,主要用于业务,并且有限使用。
复合API
使用一个API集成,可以访问多个Web应用程序和其他API。
可以使用jira和Confluence进行集成,是否符合这一描述呢?
通信协议
我经常听说REST API和SOAP API,但我不知道它们的区别,所以进行了调查。
什么是REST API?
REST API是根据”Representational State Transfer”原则设计的API。
虽然在这个阶段感到有些迷糊,
但是当使用API这个接口时,似乎需要遵守名为”REST”的四个规则,这就是所谓的REST API。
“REST”指的是一个概念或者思想,也被称为”RESTful API”。
在我印象中,”REST”、”REST API”和”RESTful API”被广泛认同相同的概念。
这四个规则具体是什么?
– 统一接口
– 可寻址性
– 连接性
– 无状态性
– 统一接口
预先确定的方法来进行数据交换。
必须使用HTTP中定义的 “GET”、”POST”、”PUT”、”DELETE” 中的一种。
・地址的可能性
所有的信息都以URI表示。例如,”https://dog.ceo/api/breeds/image/random”完全是以URI的形式来表示数据的,打开这个URI就会得到以json格式存储的数据。
连接性
包括超链接在交流的信息中。由于可以从一个链接移动到另一个链接,因此数据的交换变得更加顺畅。
・无国籍性 (Wú
如果是无状态的话,意味着没有会话保持,前一个会话不会对后续会话产生影响。
如果需要会话处理的话,可以使用cookie。
SOAP API是什么?
它是为了在不同语言之间进行交流而设计的,但安全性和数据通信方面的协议非常复杂。
REST作为SOAP的替代手段出现。
总结一下,
REST API can be paraphrased in Chinese as “REST接口” (REST .
・API是根据表述性状态转移原则设计的。它通过HTTP请求和响应进行通信。
SOAP API (SOAP 应用编程接口)
・只使用XML,并且使不同语言之间可以进行通信的工具。
・异常复杂的API。
什么是Graph API和GraphQL?
在进行调查的过程中,我还发现了Graph API和GraphQL,所以我将它们一起整理一下。
首先,关于GraphQL,当我查阅https://www.redhat.com/ja/topics/api/what-is-graphql时,它的描述如下。
GraphQL(グラフキューエル、グラフQL)是一种同时指代用于应用程序编程接口(API)查询语言和服务器端运行时的技术。GraphQL 的优势在于只返回客户端所请求的数据。
GraphQL 的设计目标是提升 API 的速度、灵活性和开发者友好性。它可以部署到一个称为 GraphiQL 的集成开发环境(IDE)中。GraphQL 可以代替 REST,通过一个 API 调用来获取多个数据源的数据。
GraphQL比起REST更容易處理,即使在需要查詢多個數據的情況下,只需調用一個接口就可以。在REST中可能會調用大量不相關的數據,但在GraphQL中,可以只提取所需的最小數據。
Graph API是什麼?
Graph API的正式名稱是「Microsoft Graph API」。
它是由Microsoft提供的RESTful Web API,可以讓用戶訪問Microsoft Cloud服務資源。
我一直以为用来描述Graph API的是GraphQL,但实际上只是名字相似而已,两者是不同的。(有点混淆啊…)
总结
・Web API是指通过HTTP和HTTPS进行通信的API。
・Web API包括SOAP、REST API和GraphQL等。
・Graph API是由Microsoft开发的RESTful Web API。
当我们进行调查时,会不断涌现出一个又一个我们不知道的事情,从而迷失了停下来的时机。