鍵.png)
GraphQL API滲透測試指南
"name": "Fitbit",
"description": "Fitbit designs products that track everyday health and fitness, empowering and inspiring people to lead healthier, more active lives.",
"image": "https://www.fitbit.com/images/common/logo_with_trademark.png",
"tags": [
"fitness"
],
"created": "2015-01-01",
"modified": "2015-01-01",
"url": "https://www.fitbit.com/apis.json",
"specificationVersion": "0.14",
"apis": [
{
"name": "Fitbit Web API",
"description": "Fitbit designs products that track everyday health and fitness, empowering and inspiring people to lead healthier, more active lives.",
"image": "https://www.fitbit.com/images/common/logo_with_trademark.png",
"humanURL": "https://dev.fitbit.com/",
"baseURL": "https://api.fitbit.com/",
"tags": [],
"properties": [
{
"type": "X-blog",
"url": "http://blog.fitbit.com/"
},
{
"type": "X-blog-rss-feed",
"url": "http://blog.fitbit.com/feed/"
},
{
"type": "X-github",
"url": "https://github.com/fitbit"
},
{
"type": "X-twitter",
"url": "https://twitter.com/fitbit"
}
],
"contact": [
{
"FN": "Fitbit API Team",
"Url": "https://dev.fitbit.com/forum"
}
]
}
],
"maintainers": [
{
"FN": "Fitbit, Inc.",
"X-twitter": "fitbit"
}
]
}
這是可以提供的額外人性化上下文的一個(gè)很好的例子。例如,簡單地提及 API 的具體維護(hù)者和聯(lián)系信息(如下所示)即可為“我應(yīng)該聯(lián)系誰來解決問題?”提供人性化答案,而且這樣做不需要復(fù)雜性或昂貴的登錄頁面。
"contact": [
{
"FN": "Fitbit API Team",
"Url": "https://dev.fitbit.com/forum"
}
]
}
],
"maintainers": [
{
"FN": "Fitbit, Inc.",
"X-twitter": "fitbit"
}
進(jìn)一步推進(jìn)這一邏輯,基于 APIs.json 構(gòu)建的工具APIs.io提供了更簡化的發(fā)現(xiàn)。該服務(wù)本質(zhì)上是一個(gè) API 搜索引擎。就像 Google 和其他索引引擎最初都是以美化過的站點(diǎn)地圖發(fā)現(xiàn)系統(tǒng)開始的一樣,APIs.io 也把這種設(shè)計(jì)范式發(fā)揮到了極致。
APIs.io 并不是一個(gè)替代工具,但它可以成為發(fā)現(xiàn)新系統(tǒng)的有效方法。值得注意的是,它還提供了一個(gè)瀏覽區(qū)域來發(fā)現(xiàn)已編入索引的 API,從而實(shí)現(xiàn)更無縫的發(fā)現(xiàn)和利用。
APIs.json 和 APIs.io 可以提供各種好處,例如實(shí)現(xiàn)更好的通信并使 API 更易于發(fā)現(xiàn)。擁有額外的數(shù)據(jù)還可以提高機(jī)器的可讀性。以下是 APIs.json 可能實(shí)現(xiàn)的一些具體好處。
這些工具為開發(fā)人員與最終用戶溝通提供了實(shí)質(zhì)性的模式。開發(fā)人員可以實(shí)施這些工具來表示他們所設(shè)想的 API 設(shè)計(jì),從而使溝通更加清晰。通過提供對 API 內(nèi)部工作原理和模式的深入理解,將用戶連接到特定的文檔位置和假設(shè),APIs.json 和 APIs.io 解鎖了一種實(shí)質(zhì)性的溝通模式,否則這種模式會因 API 用戶范例的本質(zhì)而變得模糊不清。
僅僅制作API 文檔是不夠的
這種易于實(shí)施也是一個(gè)巨大的好處。阻止大多數(shù)發(fā)現(xiàn)努力的原因是它們在開發(fā)過程中產(chǎn)生的摩擦。讓事物可被發(fā)現(xiàn)
完善技能的最簡單方法是將其傳授給其他人。同樣,確保 API 設(shè)計(jì)有效的最佳方法是向其他人解釋該設(shè)計(jì)。創(chuàng)建“API 站點(diǎn)地圖”迫使開發(fā)人員考慮他們的系統(tǒng)是如何設(shè)計(jì)的。
通過深入研究 API,開發(fā)人員可以發(fā)現(xiàn)組織方面的問題,并且可以發(fā)現(xiàn)維護(hù)方面的問題。這使開發(fā)人員能夠了解系統(tǒng)是如何設(shè)計(jì)的,如何改進(jìn),以及最終用戶從外部角度如何理解 API。
機(jī)器可讀系統(tǒng)易于集成和擴(kuò)展,為此付出的努力可以隨著時(shí)間的推移帶來巨大的回報(bào)。機(jī)器可讀集成意味著進(jìn)一步實(shí)現(xiàn)互操作性的門檻較低,并為自動(dòng)化和開發(fā)帶來巨大好處。
從本質(zhì)上講,機(jī)器可讀性類似于使用作弊代碼,有助于消除系統(tǒng)孤島。這里的一個(gè)重要部分是,人們在機(jī)器可讀 API 規(guī)范方面投入了大量資金,并且實(shí)施起來阻力很小。有了OpenAPI、AsyncAPI、JSON、Schema等選項(xiàng)
API 用戶很容易被視為一個(gè)整體,但事實(shí)上每個(gè)用戶都有自己的考慮、顧慮和用例。這些用戶需要一個(gè)支持網(wǎng)絡(luò)才能有效地使用您的系統(tǒng),而提供諸如 APIs.json 和 APIs.io 之類的發(fā)現(xiàn)引擎可以促進(jìn)圍繞您的 API 的社區(qū)開發(fā)。
這對長期 API 的使用和保留有著巨大的影響,但同時(shí)也為開源協(xié)作帶來了附加好處。當(dāng)系統(tǒng)相互連接并允許用戶圍繞用例進(jìn)行整合時(shí),這些系統(tǒng)將大規(guī)模釋放巨大的好處。
圍繞 APIs.json 和 APIs.io 可能會出現(xiàn)一些擔(dān)憂。首先,人們顯然擔(dān)心安全和隱私問題。在共享復(fù)雜的 API 詳細(xì)信息時(shí),開發(fā)人員應(yīng)該考慮他們的 API 的哪些元素需要公開,哪些不需要。也就是說,采用適當(dāng)?shù)牧阈湃?API 安全
開發(fā)人員可能還擔(dān)心額外的流程。使用這些工具確實(shí)需要時(shí)間和資源投入,而一些開發(fā)人員(尤其是那些只提供單一 API 的開發(fā)人員)可能認(rèn)為使用這些工具只是另一種成本,收益不大。
雖然不依賴其他系統(tǒng)的單 API 開發(fā)人員的評估可能準(zhǔn)確,但開發(fā)人員從 APIs.json 和 APIs.io 中受益的程度實(shí)際上相當(dāng)?shù)汀H绻鲇谌魏卧蛐枰_您的系統(tǒng)并使其可被發(fā)現(xiàn),這些工具是實(shí)現(xiàn)這一目標(biāo)的好方法。因此,這個(gè)問題相對來說是自我選擇的——如果您認(rèn)為這個(gè)用例成本太高,那么它很可能就是這樣。
APIs.json 和 APIs.io 是出色的工具,可以幫助大多數(shù)組織獲得切實(shí)的利益。通過一些基本的設(shè)計(jì)考慮和主動(dòng)開發(fā),它們可以在社區(qū)發(fā)展、自動(dòng)化支持和新發(fā)現(xiàn)方面帶來巨大好處。
原文地址:https://nordicapis.com/the-benefits-of-using-apis-json-and-apis-io/
GraphQL API滲透測試指南
Python + BaiduTransAPI :快速檢索千篇英文文獻(xiàn)(附源碼)
掌握ChatGPT API集成的方便指南
node.js + express + docker + mysql + jwt 實(shí)現(xiàn)用戶管理restful api
nodejs + mongodb 編寫 restful 風(fēng)格博客 api
表格插件wpDataTables-將 WordPress 表與 Google Sheets API 連接
手把手教你用Python和Flask創(chuàng)建REST API
使用 Django 和 Django REST 框架構(gòu)建 RESTful API:實(shí)現(xiàn) CRUD 操作
ASP.NET Web API快速入門介紹