Difference between revisions of "API"
(→API Keys & Security) |
(→API Keys & Security) |
||
Line 209: | Line 209: | ||
* REST Security (CHEAT SHEET): https://www.owasp.org/index.php/REST_Security_Cheat_Sheet | * REST Security (CHEAT SHEET): https://www.owasp.org/index.php/REST_Security_Cheat_Sheet | ||
− | |||
<ref>Why API Keys are not enough: https://nordicapis.com/why-api-keys-are-not-enough/</ref> | <ref>Why API Keys are not enough: https://nordicapis.com/why-api-keys-are-not-enough/</ref> | ||
<ref>Best Practices for Storing / Protecting API Keys : https://developer.oregonstate.edu/faqs/best-practices-storing-protecting-api-keys</ref> | <ref>Best Practices for Storing / Protecting API Keys : https://developer.oregonstate.edu/faqs/best-practices-storing-protecting-api-keys</ref> | ||
Line 220: | Line 219: | ||
<ref>Best practices for securely using API keys: https://support.google.com/googleapi/answer/6310037</ref> | <ref>Best practices for securely using API keys: https://support.google.com/googleapi/answer/6310037</ref> | ||
<ref>API Key Auth Provider (C#): http://docs.servicestack.net/api-key-authprovider#interoperable</ref> | <ref>API Key Auth Provider (C#): http://docs.servicestack.net/api-key-authprovider#interoperable</ref> | ||
+ | <ref>Reducing Risk of Credential Compromise @Netflix: https://www.infoq.com/presentations/netflix-infrastructure-security</ref> | ||
== Tools == | == Tools == |
Revision as of 18:25, 27 April 2019
An Application Programming Interface (or commonly abbreviated as API), is a mechanism for exposing the core functionality of an application (such as a client or desktop program, web site or web service) to an external application (of any of the previously mentioned types).
Since the days of Web 2.0, an API is seen as a crucial element to any Web Application or Web Service. In general though, APIs are crucial parts of an application design and implementation strategy. They ensure the involvement of third-parties and outside developers in the products and services you create, and they can also help to breed innovation.
Specifications
OpenAPI
OpenAPI is an OSS specification and associated OSS (with commercial/enterprise-grade supported options) set of tools for Designing, Documenting, Sharing, Inspecting/Analyzing, Stubbing/Mocking, Validating, Comparing and/or Serving API endpoints and their associated Auth mechanisms, Headers, request/response pair examples, actual payloads, error messsages/conditions around, etc. It is seen as the cross-platform (SOAP, REST, REST-JSON/XML, XML-RPC, etc) Web Service documentation alternative to the more protocol-specific WSDL (SOAP) & WADL (REST) specifications.
For more, see: OpenAPI
- OpenAPI: https://github.com/OAI/OpenAPI-Specification | v3.0[1]
- OpenAPI v3.0 spec: https://www.openhttp://theapistack.com/jsonapis.org/specification/v3insights
[2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
RAML
Rest API Markup Language (RAML) is Mulesoft's alternative to Swagger/OpenAPI.
- RAML: https://raml.org[12]
- RAML spec: https://github.com/raml-org/raml-spec
APIs.json
APIs.json is a machine readable approach that API providers can use to describe their API operations, similar to how web sites are described using the Sitemap.xml spec but for listing/discovery of Web Services and their operations.
- APIs.json: http://apisjson.org/
- The API Stack: http://theapistack.com/ (directory listing of APIs.JSON-documented web APIs)
Types of APIs
Native/Library
A Native or Library API is typically an operating system-specific or programming language-specific one which provides access to certain data, methods/functionality, or commonly required utilities.
Web Services
Web Services are remotely callable functionality residing in another application.
XML-RPC
XML-RPC was one of the first examples of a Web Service format for remotely exchanging data, specifying the format as a strict set of XML "methods" and.
Request | Response |
---|---|
<?xml version="1.0" encoding="utf-8"?> <methodCall> <methodName>myService.sum</methodName> <params> <param> <value><int>17</int></value> </param> <param> <value><int>13</int></value> </param> </params> </methodCall> |
<methodResponse> <params> <param> <value><int>30</int></value> </param> </params> </methodResponse> |
SOAP
SOAP is a contract-based (contract-first or contract-last, but contract nonetheless) approach to cross-application communication.
Request | Response |
---|---|
GET http://www.mysite.com/myService?wsdl --> Lookup required Web Service "operation" POST http://www.mysite.com/getAddition <?xml version="1.0" encoding="utf-8"A?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <soap:Header> <To xmlns="http://www.w3.org/2005/08/addressing">http://www.mysite.com:8181/Math/</To> <Action xmlns="http://www.w3.org/2005/08/addressing">tns:getAdditon_Request</Action> <ReplyTo xmlns="http://www.w3.org/2005/08/addressing"> <Address>http://www.w3.org/2005/08/addressing/anonymous</Address> </ReplyTo> </soap:Header> <soap:Body> <Math:getAddition> <Math:number1>17</Math:number1> <Math:number2>13</Math:number2> </Math:getAddition> </soap:Body> </soap:Envelope> |
<?xml version="1.0" encoding="utf-8"A?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <soap:Header> <ResponseHeader xmlns="https://www.mysite.com/apis/Math/v2017-08-17"> <requestId>123456789</requestId> <responseTime>1350</responseTime> </ResponseHeader> </soap:Header> <soap:Body> <Math:getAddition> <Math:value>30</Math:value> </Math:getAddition> </soap:Body> </soap:Envelope> |
- For more, see section: SOAP
REST
REST is a direct access-based approach to cross-application communication, where the API's documentation is typically relied upon heavily to describe how to access it. When REST is done properly though, using a RESTful approach, the API becomes mostly self-documenting, instead relying on the Create-Read-Update-Delete (CRUD) to HTTP POST-GET-PUT-DELETE relationship to describe how to access the Web Service and interact with its data.
Request | Response |
---|---|
GET http://www.mysite.com/myService?number=17&number2=13 |
{ "value" : "30" } |
Although, in reality a REST endpoint can be as complex or simplistic to call as you want, to be truly "RESTful" it should follow certain conventions. The simplistic example above of passing two numbers as input parameters would likely be highly criticized by RESTful WS purist, perhaps to look more like this:
GET http://www.mysite.com/add/{input1}/{input2}
Others still may argue that since it is "changing a resource" (i.e. doing addition with the two inputs its given) it should be a POST request without any parameters or additional paths beyond and the inputs should be passed in the HTTP message body:
POST http://www.mysite.com/add BODY input1=17&input2=13
There is no right or wrong answer, only opinion, as the REST approach is far less structured/defined and more open to interpretation.
- For more, see section: REST
API Design
5 essentials for a great API
- Provide a valuable service
- Have a plan and a business model
- Make it simple and flexible
- It should be managed and measured
- Provide great developer support (Docs, API Console, Example Client Implementations/SDKs, Sandbox)[15]
API Keys & Security
- REST Security (CHEAT SHEET): https://www.owasp.org/index.php/REST_Security_Cheat_Sheet
[16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26]
Tools
- OpenAPI: https://openapis.org/ (project & framework to create open specification for APIs, SDK generators, Documentors, etc based on Swagger... which remains as a vendor-specific reference implementation)
- Swagger: http://swagger.io/ (API documentation/design based on YAML) | EDITOR | INSPECTOR
- Postman - API dev tool: https://www.getpostman.com/[27][28]
- AsciiDoctor: http://asciidoctor.org/ (plain Text to HTML)
- Rapido - A rest API specification language: https://github.com/d-plaindoux/rapido [29][30]
- API Builder: https://www.apibuilder.io/ (commonly referred to as "GitHub for APIs", storngest option for JSON-RPC)
- Burp Suite: https://portswigger.net/burp[31]
- BestBuy - API Query Builder v2.0: https://bestbuyapis.github.io/bby-query-builder/#/productSearch | DOCS[32][33][34]
- Amazon Product API sandbox: http://associates-amazon.s3.amazonaws.com/signed-requests/helper/index.html (now called "signed requests helper")[35]
- Itacct API test tool: http://developer.intacct.com/wiki/web-services-api-test-tool-reference
- Brightcove API test tool: http://opensource.brightcove.com/tool/api-test-tool[36]
- OpenOffice - C library API test tool: https://www.openoffice.org/udk/common/man/tasks/apitests.html
API Management
- SwaggerHub: https://swaggerhub.com/ (cloud-based host for OpenAPI defined API management, SDK code generation & stubs/mocking, aka Swagger)
- POSTman: https://www.getpostman.com/ (competing open source solution that forced Swagger team to release their tools under [OpenAPI spec])
- Mashery: http://developer.mashery.com/apis (the original SaaS-based API directory & management/pay-for-use tool)[37]
- AnyPoint: https://anypoint.mulesoft.com/apiplatform/ (API directory & management/pay-for-use tool, by leading ESB provider MuleSoft)
- 3Scale: https://www.3scale.net/ (SaaS API management/pay-for-use, with tie-ins to Performance Management & Automated Testing tools)
- APIgee: http://apigee.com/about/products/api-management (API directory & management/pay-for-use tool with great on-premise support option, not just cloud)
- Apiary: https://apiary.io/ (powerful API design stack, built for developers)[38] (work together to quickly design, prototype, document and test APIs)
- Mashape: https://www.mashape.com/ (similar to the above but focused on large datasets not Microservices/APIs)
- GetKong: http://getkong.org/ (open-source API management platform, aims to deliver high performance & reliability)
SoapUI
See: SoapUI
Resources
- Programmable Web - API Directory: http://www.programmableweb.com/apis/directory
- Full Web 2.0 API List: http://techmagazine.ws/full-web-20-api-list
- API Hub: http://www.apihub.com (formerly by Mule, now discontinued)[40]
- API Style Book: http://apistylebook.com/
- Developer Support Handbook: http://developer-support-handbook.appspot.com (API-focused dev resource)
- Developer Experience (BLOG): http://developerexperience.org/
- API Business Models: http://blog.programmableweb.com/2011/05/25/api-business-models-then-and-now/
- Using APIs With PHP? Here Are Your Classes: http://jeez.eu/2009/11/23/using-apis-with-php-here-are-your-classes/
- Documenting APIs -- A guide/course for technical writers: http://idratherbewriting.com/learnapidoc/
- BC$ MobileTV API - EXAMPLE API doc/implementation: http://bcmoney-mobiletv.com/pages/api.html
- BC$ Wiki API: http://bcmoney-mobiletv.com/blog/2014/09/13/creating-a-w3c-widget-with-the-wikipedia-api | EXAMPLE (this wiki itself, powered by MediaWiki, comes with a built-in API)
- Tesla Model S Car - unofficial REST API: http://docs.timdorr.apiary.io (see "Myth of the 'Private API'" article below)
- Star Wars API: http://swapi.co (a good toy/example API for testing with)
JavaScript
JavaScript APIs (sometimes called JSON APIs or JSONp APIs) require only a standard <script> tag to be added to a webpage in order to expose their functionality. For example:
<script type="text/javascript" src="http://www.somesite.com/somejavascript.js"></script>
would expose the functionalities of the somejavascript API that belongs to somesite.com
- Passing JSON message across servers (JavaScript API): http://ajaxpatterns.org/JSON_Message
- On-Demand JavaScript: http://ajaxpatterns.org/On-Demand_Javascript
- On-Demand Cross-Site Scripting: http://ecmanaut.blogspot.com/2005/11/on-demand-cross-site-javascript.html
- Cross-Domain Proxy: http://ajaxpatterns.org/Cross-Domain_Proxy
Java
Java has strong support for intra-application and inter-application integration and interaction via making publically callable methods so that other programs can reuse application logic and methods.
- Java APIs: http://java.sun.com/reference/api/
- DayLife API -- A Simple Java Client: http://developer.daylife.com/simple-java-client
C
The most widespread APIs in use today though, are probably the C APIs available for Unix and ported to other systems. These make it possible to do a number of complex tasks using a much smaller amount of code than if every set of logic had to be programmed manually.
- C Library reference: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/index2.html
- Unix API - System Interface guide: http://www.unix.org/version4/GS5_APIs.pdf
Tutorials
- Create Your Own Custom API: http://www.codewalkers.com/c/a/Miscellaneous/Create-Your-Own-Custom-API/
- How To Get Live Sports Scores: http://www.sinfuliphone.com/showthread.php?t=32261
- Simple API Writing, Part I: http://www.v-nessa.net/2009/02/09/simple-api-writing-part-i
- How to write API documentation: http://docs.jquery.com/How_to_write_API_documentation
- A Coder’s Guide to Writing API Documentation: http://msdn.microsoft.com/en-us/magazine/gg309172.aspx
- Using the eBay API Test Tool: http://www.ebaypartnernetworkblog.com/en/2011/08/using-the-api-test-tool/
- The Myth of the Private API - Fundamental Interconnectedness of Things: http://programming.oreilly.com/2013/09/the-myth-of-the-private-api.html
- Using SOAP with WS-Security: http://docs.aws.amazon.com/AWSECommerceService/latest/DG/WSSecurity.html
- Sketching API Connections: http://www.codingthearchitecture.com/2014/10/28/sketching_api_connections.html
- How to design an API - best practises, concepts, technical aspects: http://piwik.org/blog/2008/01/how-to-design-an-api-best-practises-concepts-technical-aspects/
- Best Practices for Architecting a Pragmatic Web API: http://www.slideshare.net/mario_cardinal/best-practices-for-designing-pragmatic-restful-api
- API Development -- Design-First or Code-First?: http://dzone.com/articles/design-first-or-code-first-whats-the-best-approach
- Designing a Usable, Flexible, Long-Lasting API: https://dzone.com/articles/designing-a-usable-flexible-long-lasting-api
- Using API Gateways to Facilitate Your Transition from Monolith to Microservices: https://itnext.io/using-api-gateways-to-facilitate-your-transition-from-monolith-to-microservices-c08fe3489237
- The Role of API Gateways in API Security: https://dzone.com/articles/the-role-of-api-gateways-in-api-security[41][42]
- Securing REST APIs With Client Certificates: https://dzone.com/articles/securing-rest-apis-with-client-certificates[43]
- Spring Boot and Swagger - Documenting RESTful Services: https://dzone.com/articles/spring-boot-and-swagger-documenting-restful-servic[44][45]
- Functional API Testing -- Auto-Generation, Execution and Reporting (with BlazeMeter/JMeter): http://info.blazemeter.com/thank-you-functional-api-testing-autogeneration-execution-reporting-1
- API Response Tracking With StreamSets, Elasticsearch, and Kibana : https://dzone.com/articles/api-response-tracking-with-streamsets-elasticsearc
External Links
- wikipedia: Application programming interface
- wikipedia: API management
- In layman's terms, what is an API?: http://www.quora.com/In-laymans-terms-what-is-an-API-1
- 1 in 5 APIs Say "Bye XML": http://blog.programmableweb.com/2011/05/25/1-in-5-apis-say-bye-xml/
- 4,000 Web APIs - What’s Hot and What’s Next?: http://blog.programmableweb.com/2011/10/03/4000-web-apis-whats-hot-and-whats-next/
- Who Belongs to the API Billionaires Club?: http://blog.programmableweb.com/2011/05/25/who-belongs-to-the-api-billionaires-club/
- 40 Video APIs on ProgrammableWeb: http://blog.programmableweb.com/2008/08/07/40-video-apis-on-programmableweb/
- 42 Different APIs Used in 7 Days - From MTV to NPR: http://blog.programmableweb.com/2009/05/16/42-different-apis-used-in-7-days-from-mtv-to-npr/
- 9 Places to Use APIs Without Coding: http://blog.programmableweb.com/2007/03/26/9-places-to-use-apis-without-coding/
- API -- web services and today's business enabler: http://vzaar.com/blog/2009/11/api-web-service-and-todays-business-enabler
- Accidental APIs - NFL edition: http://postneo.com/2007/09/09/accidental-apis-nfl-edition
- Ask HN -- How to legally obtain sports data for commercial use?: http://news.ycombinator.com/item?id=1791588
- API Half-lives: http://www.gabrielweinberg.com/blog/2011/11/api-half-lives.html
- Using external APIs to improve search: http://www.gabrielweinberg.com/blog/2011/01/using-external-apis-to-improve-search.html
- Online services our startup subscribes to: http://www.gabrielweinberg.com/blog/2011/11/online-services-our-startup-subscribes-to.html
- Beginner’s guide for journalists who want to understand API documentation: http://www.poynter.org/how-tos/digital-strategies/138211/beginners-guide-for-journalists-who-want-to-understand-api-documentation/
- Survey on SDK Documentation: http://blcommunity.prestwood.com/ASPSuite/KB/document_view.asp?qid=102002
- UN Data API: http://www.programmableweb.com/api/un-data#utm_source=email
- Mobile Java Push API: http://www.programmableweb.com/api/mobile-java-push#utm_source=email
- Spot2Be: http://spot2.be/api
- Getting API-Centric and Moving Beyond Integration: http://java.dzone.com/articles/getting-api-centric-and-moving
- Backend For Front-end (BFF) @ SoundCloud: https://www.thoughtworks.com/insights/blog/bff-soundcloud
- API Auth Size Small: https://dzone.com/articles/api-authentication-size-small
- Your API Versioning is Wrong: http://java.dzone.com/articles/your-api-versioning-wrong
- How to Calculate the Worth of an API (INFOGRAPHIC): http://blog.smartbear.com/wp-content/uploads/2015/11/How-Much-is-Your-API-Worth_Infographic.png
- The Five Axioms of the API Economy: http://java.dzone.com/articles/organizations-must-consume
- The API Lifecycle: http://dzone.com/articles/the-api-life-cycle
- Adopting an API-First Approach with OpenAPI 3.0: https://swagger.io/api-first-approach-with-openapi-training/
- Design patterns for modern web APIs: https://blog.feathersjs.com/design-patterns-for-modern-web-apis-1f046635215
- TIBCO Software to Acquire API Management Leader Mashery: https://www.tibco.com/press-releases/2015/tibco-software-acquire-api-management-leader-mashery
- Red Hat to Acquire API Management Leader 3scale -- Accelerates digital transformation with API driven hybrid-cloud architectures: https://www.redhat.com/en/about/press-releases/red-hat-acquire-api-management-leader-3scale
- Red Hat to Acquire API Management Leader 3scale: https://www.3scale.net/2016/06/red-hat-to-acquire-api-management-leader-3scale/
- Red Hat to Acquire API Management Leader 3scale: https://www.businesswire.com/news/home/20160622006354/en/Red-Hat-Acquire-API-Management-Leader-3scale
- Google to acquire Apigee: https://cloud.google.com/blog/products/gcp/google-to-acquire-apigee
- Google will acquire Apigee for $625 million: https://techcrunch.com/2016/09/08/google-will-acquire-apigee-for-625-million/
- Google to acquire API management provider Apigee for $625 million: https://venturebeat.com/2016/09/08/google-to-acquire-api-management-provider-apigee-for-625m/
- Apigee has Joined Google: https://apigee.com/about/apigee-has-joined-google
- MuleSoft Buys "Programmable Web" From Alcatel-Lucent, Marking The Telco’s Departure From A Core API Community: https://techcrunch.com/2013/04/23/mulesoft-buys-programmable-web-from-alcatel-lucent-marking-the-telcos-departure-from-a-core-api-community/
- Salesforce Signs Definitive Agreement to Acquire MuleSoft: https://www.mulesoft.com/press-center/salesforce-acquisition
- Salesforce Signs Definitive Agreement to Acquire MuleSoft: https://www.salesforce.com/company/news-press/press-releases/2018/03/180320/
- Salesforce agrees to buy MuleSoft in $6.5 billion deal: https://www.cnbc.com/2018/03/20/salesforce-agrees-to-buy-mulesoft-in-6-point-5-billion-deal.html
- Salesforce Completes Acquisition of MuleSoft: https://www.salesforce.com/company/news-press/press-releases/2018/05/180502/
- Salesforce Just Bought MuleSoft, an IT Company That Went Public Last Year: fortune.com/2018/03/20/salesforce-mulesoft-acquisition-deal/
- Reverse engineering an API: https://medium.com/postman-engineering/reverse-engineering-an-api-403fae885303
- How To Make Swagger Codegen Work For Your Team: https://medium.com/capital-one-tech/how-to-make-swagger-codegen-work-for-your-team-32194f7d97e4
References
- ↑ What is OpenAPI?: https://swagger.io/docs/specification/about/
- ↑ The OpenAPI Specification Version 3.0 Highlights: https://apievangelist.com/2017/01/25/the-openapi-specification-version-30-highlights/
- ↑ Open API Initiative Announces Release of the OpenAPI Spec v3 Implementer’s Draft: https://www.openapis.org/blog/2017/03/01/openapi-spec-3-implementers-draft-released
- ↑ OpenAPI 3.0, And What It Means for the Future of Swagger (WEBINAR): https://swaggerhub.com/blog/api-resources/openapi-3-0-video-tutorial/ | SLIDES
- ↑ A Visual Guide to What's New in Swagger 3.0: https://blog.readme.io/an-example-filled-guide-to-swagger-3-2/
- ↑ Comparing OpenAPI/Swagger 2.0 and 3.0.0-rc1: https://dev.to/mikeralphson/comparing-openapiswagger-20-and-300-rc1
- ↑ What’s New in OpenAPI 3.0: http://nordicapis.com/whats-new-in-openapi-3-0/
- ↑ Looking to Create OpenAPI 3.0 For Your API? Swagger Inspector Has Your Back: https://swagger.io/blog/convert-oas-3-swagger-inspector/#sendgrid_mc_email_subscribe
- ↑ Migrating to OpenAPI 3.0 -- How to Convert Your Existing APIs with Swagger Tools: https://swagger.io/resources/webinars/convert-api-to-oas-3-with-swagger-tools/
- ↑ Tutorial - Converting your Swagger 2.0 API Definition to OpenAPI 3.0: https://blog.runscope.com/posts/tutorial-upgrading-swagger-2-api-definition-to-openapi-3
- ↑ Collaborating Across the API Lifecycle -- How to Setup an API Workflow that Scales: https://swagger.io/resources/webinars/collaborating-across-the-api-lifecycle/
- ↑ wikipedia: RAML (software)
- ↑ API Discovery Is for Internal or External Services: https://dzone.com/articles/api-discovery-is-for-internal-or-external-services
- ↑ The Star Wars API (SWAPI): https://swapi.co
- ↑ Is the API Landscape Broken?: http://www.wired.com/insights/2013/01/is-the-api-landscape-broken/
- ↑ Why API Keys are not enough: https://nordicapis.com/why-api-keys-are-not-enough/
- ↑ Best Practices for Storing / Protecting API Keys : https://developer.oregonstate.edu/faqs/best-practices-storing-protecting-api-keys
- ↑ Google Developers - API Key Best Practices: https://developers.google.com/maps/api-key-best-practices
- ↑ Google Developers - Guide to Using API Keys: https://cloud.google.com/docs/authentication/api-keys?hl=en&visit_id=636795263018130436-4272006704&rd=1
- ↑ Client-Side Storage options with HTML5: https://www.html5rocks.com/en/tutorials/offline/storage/
- ↑ Best Practices for Designing a Pragmatic RESTful API: https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
- ↑ Best practices for building secure API Keys: https://medium.freecodecamp.org/best-practices-for-building-api-keys-97c26eabfea9
- ↑ Best practices for securely storing API keys: https://medium.freecodecamp.org/how-to-securely-store-api-keys-4ff3ea19ebda
- ↑ Best practices for securely using API keys: https://support.google.com/googleapi/answer/6310037
- ↑ API Key Auth Provider (C#): http://docs.servicestack.net/api-key-authprovider#interoperable
- ↑ Reducing Risk of Credential Compromise @Netflix: https://www.infoq.com/presentations/netflix-infrastructure-security
- ↑ How to Use Postman to Manage and Execute Your APIs: http://dzone.com/articles/how-to-use-postman-to-manage-and-execute-your-apis
- ↑ Cisco DevNet uses Postman to grow their developer community: http://blog.getpostman.com/2018/05/18/cisco-devnet-uses-postman-to-grow-their-developer-community/
- ↑ Rapido - A Sketching Tool for Web API Designers (WHITEPAPER): http://www.www2015.it/documents/proceedings/companion/p1509.pdf
- ↑ Sketching Web APIs: http://www.slideshare.net/ronniemitra/sketching-web-apis
- ↑ wikipedia: Burp suite
- ↑ BestBuy API - Getting Started guide: https://developer.bestbuy.com/documentation/getting-started
- ↑ Best Buy API - NodeJS SDK: http://github.com/BestBuyAPIs/bestbuy-sdk-js
- ↑ Former BestBuy BBYopen - Developer API console: http://web.archive.org/web/20130309114440/https://bbyopen.com/developer-tools/api-console
- ↑ Amazon Dev Tools - Signed Request Helper: https://aws.amazon.com/developertools/351
- ↑ Source Code for Brightcove API test tool: https://github.com/BrightcoveOS/API-Test-Tool
- ↑ Introducing Mashery: http://mashery.mashery.com/docs/Provider
- ↑ How Apiary works: https://apiary.io/how-it-works
- ↑ 10 Ways API Management Improves Product Development:: https://www.mulesoft.com/sites/default/files/resource-assets/10%20Ways%20API%20Management%20Improves%20Product%20Development.pdf
- ↑ Announcing Mule API Hub: http://blogs.mulesoft.com/dev/api-dev/introducing-apihub/
- ↑ Design patterns for Microservices: https://dzone.com/articles/design-patterns-for-microservices
- ↑ API Management of comparative views of "real-world" design: https://dzone.com/guides/api-management-comparative-views-of-real-world-des
- ↑ Securing a REST Service: https://dzone.com/articles/securing-a-rest-service
- ↑ Swagger Generation With Spring Boot: https://dzone.com/articles/swagger-generation-with-spring-boot
- ↑ Versioning RESTful Services With Spring Boot: https://dzone.com/articles/versioning-restful-services-with-spring-boot