api page improvements

This commit is contained in:
Inaki Fernandez
2020-05-09 13:19:22 +02:00
parent 4fc6007d26
commit 263d762dbd
12 changed files with 139 additions and 23 deletions

92
docs/api.md Normal file
View File

@@ -0,0 +1,92 @@
# APIs with SOAP, REST and gRPC
- [APIs](#apis)
- [Types of API Protocols](#types-of-api-protocols)
- [SOAP API Protocol (Simple Object Access Protocol)](#soap-api-protocol-simple-object-access-protocol)
- [REST API Protocol (Representational State Transfer)](#rest-api-protocol-representational-state-transfer)
- [OpenAPI/Swagger](#openapiswagger)
- [RPC Protocol (Remote Procedure Call)](#rpc-protocol-remote-procedure-call)
- [gRPC](#grpc)
- [Comparisons](#comparisons)
- [SOAP vs REST](#soap-vs-rest)
- [REST vs OpenAPI vs gRPC](#rest-vs-openapi-vs-grpc)
- [Tools](#tools)
- [API Testing](#api-testing)
- [GraphQL](#graphql)
- [Free Web Services (Public APIs)](#free-web-services-public-apis)
- [Related](#related)
## APIs
- [wikipedia: API Application Programming Interface](https://simple.wikipedia.org/wiki/Application_programming_interface)
- [apifriends.com: What is an API?](https://apifriends.com/api-management/what-is-an-api/)
- [axway.com: What is API Management?](https://www.axway.com/en/products/api-management/what-is-api-management)
- [mulesoft.com: APIs versus web services](https://blogs.mulesoft.com/dev/api-dev/apis-versus-web-services/)
- [Youtube Playlist: Introduction to APIs](https://www.youtube.com/playlist?list=PLM-7VG-sgbtBBnWb2Jc5kufgtWYEmiMAw)
- [Devdocs.io API Documentation](https://devdocs.io/)
## Types of API Protocols
- [apifriends.com: What are the different types of APIs? 🌟](https://apifriends.com/api-creation/different-types-apis/) Types of API Protocols: SOAP, REST and RPC
### SOAP API Protocol (Simple Object Access Protocol)
- [wikipedia: SOAP](https://en.wikipedia.org/wiki/SOAP)
- [geeksforgeeks.org: Basics of SOAP Simple Object Access Protocol](https://www.geeksforgeeks.org/basics-of-soap-simple-object-access-protocol/)
- For information about the latest work on SOAP and a full list of SOAP specifications refer to the [W3C Technical Reports](https://www.w3.org/TR/)
- [guru99.com: SOAP Web Services Tutorial: Simple Object Access Protocol. What is SOAP?](https://www.guru99.com/soap-simple-object-access-protocol.html)
- [jitendrazaa.com: Create SOAP message using Java](http://www.jitendrazaa.com/blog/java/create-soap-message-using-java/)
- [dzone: Creating a SOAP Web Service With Spring Boot Starter Web Services](https://dzone.com/articles/creating-a-soap-web-service-with-spring-boot-start) In this post, we cover the concepts of SOAP and REST and show you all the code you need to use SOAP web services in a Spring Boot app.
### REST API Protocol (Representational State Transfer)
- [wikipedia: REST](https://en.wikipedia.org/wiki/Representational_state_transfer)
- [geeksforgeeks.org: REST API (Introduction)](https://www.geeksforgeeks.org/rest-api-introduction/)
- [geeksforgeeks.org: REST API Architectural Constraints](https://www.geeksforgeeks.org/rest-api-architectural-constraints/)
- [mulesoft.com: What is a RESTful API?](https://www.mulesoft.com/resources/api/restful-api)
- [Dzone refcard: Foundations of **RESTful Architecture** 🌟](https://dzone.com/refcardz/rest-foundations-restful)
- [Dzone: REST API tutorials](https://dzone.com/articles/rest-api-tutorials)
#### OpenAPI/Swagger
- [OpenAPI](https://www.openapis.org/) evolved from the [Swagger](https://swagger.io/) project. Swagger started out as a specification for documenting RESTful APIs. Later on, tools to generate client and server code and generating of test cases were added. While the original Swagger Specification was donated to the Linux Foundation and renamed the OpenAPI, Swagger remains one of the most widely used open-source toolsets for developing OpenAPIs.
- [[OpenAPI FAQ. What is OpenAPI Specification (OAS)? OpenAPI Specification](https://www.openapis.org/faq) The OAS defines a standard, programming language-agnostic interface description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic.
- [apis.guru/openapi-directory: large archive of sample OpenAPI descriptions](https://apis.guru/openapi-directory/)
### RPC Protocol (Remote Procedure Call)
- [wikipedia: RPC Remote Procedure Call](https://en.wikipedia.org/wiki/Remote_procedure_call)
#### gRPC
- [gRPC](https://grpc.io/)
- [wikipedia: gRPC](https://en.wikipedia.org/wiki/GRPC)
## Comparisons
### SOAP vs REST
- [geeksforgeeks.org: Difference between REST API and SOAP API](https://www.geeksforgeeks.org/difference-between-rest-api-and-soap-api/)
- [dzone: A Comprehensive Guide to REST vs. SOAP](https://dzone.com/articles/comprehensive-guide-rest-vs-soap) Learn the primary differences between REST and SOAP APIs, each one's benefits, and when it's appropriate to use the two.
- [dzone: Web Services Architecture When to Use SOAP vs REST](https://dzone.com/articles/web-services-architecture) Learn why SOAP (Simple Object Access Protocol) and REST (Representation State Transfer) are popular with developers working on system integration projects.
- [dzone: Comparing RESTful APIs and SOAP APIs Using MuleSoft as an Example](https://dzone.com/articles/comparing-restful-apis-and-soap-apis)
- [reply.com: Web Services: SOAP and REST - A Simple Introduction](https://www.reply.com/solidsoft-reply/en/content/webservices-soap-and-rest-a-simple-introduction)
- SOAP is a communications protocol while REST is a set of architectural principles for data transmission.
- REST was designed to be a more straightforward and easy to implement alternative to heavyweight SOAP for web service access. SOAP functions well in distributed environments where REST assumes a direct point to point communication. Also, SOAP allows for services to describe themselves to clients and in some languages allows for automation. On the other hand, REST is fast as less processing is required, uses less bandwidth and is closer to technologies used in web design.
- The choice on which to use is totally dependent on what the requirement. For example, SOAP is a better choice for applications that have complex API so as to describe the services and methods, where formal contracts are agreed for the exchange format, where a guaranteed level of security is required etc. REST will be preferred when limiting bandwidth and resources, when operations are can be stateless and the information can be cached.
### REST vs OpenAPI vs gRPC
- [REST vs. gRPC: Battle of the APIs](https://code.tutsplus.com/tutorials/rest-vs-grpc-battle-of-the-apis--cms-30711)
- [Comparing OpenAPI With gRPC 🌟](https://dzone.com/articles/comparing-openapi-with-grpc) OpenAPI is a great choice due to its interoperability. On the other hand, gRPC offers a better performance. Luckily, you don't have to choose one or the other.
## Tools
### API Testing
* [softwaretestingportal.com: API Testing, Key Terminologies and more…..](http://www.softwaretestingportal.com/2020/03/31/api-testing/)
* [dzone.com: 10 API Testing Tips for Beginners (SOAP and REST)](https://dzone.com/articles/10-api-testing-tips-for-beginners-soap-amp-rest) Let's take a look at ten API testing tips for beginners with a focus on REST APIs and SOAP APIs.
### GraphQL
- [GraphQL](https://graphql.org/) A query language for your API
- [How is the OpenAPI Specification different from GraphQL?](https://www.openapis.org/faq) How are screws better than nails? Both are useful tools that solve similar problems in slightly different ways. OpenAPI Specification offers a declarative contract that defines the structure of API requests and responses as discrete operations. GraphQL prefers an interface style that is more like querying a database and is best suited to graph databases.
## Free Web Services (Public APIs)
- [free-web-services.com](http://free-web-services.com/)
- [SwaggerHub: Free Web Service](https://swagger.io/tools/swaggerhub/)
- [programmableweb.com](https://www.programmableweb.com/)
- [any-api.com](https://any-api.com/)
- [Rapid API:](https://rapidapi.com/)
## Related
- [medium: Do I Need an API Gateway if I Use a Service Mesh? 🌟](https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/)
* [Dzone: How to Create a REST API With Spring Boot](https://dzone.com/articles/how-to-create-rest-api-with-spring-boot)
* [Dzone: Step-By-Step Spring Boot RESTful Web Service Complete Example](https://dzone.com/articles/spring-boot-restful-web-service-complete-example)
* [Creando un API REST en Java (parte 1)](https://www.oscarblancarteblog.com/2018/06/25/creando-un-api-rest-en-java-parte-1/)

View File

@@ -1,14 +0,0 @@
# APIs and RESTful Architecture
* [Devdocs.io API Documentation](https://devdocs.io/)
* [Dzone refcard: Foundations of RESTful Architecture 🌟🌟](https://dzone.com/refcardz/rest-foundations-restful)
* [Introduction to APIs (youtube playlist)](https://www.youtube.com/playlist?list=PLM-7VG-sgbtBBnWb2Jc5kufgtWYEmiMAw)
* [Dzone: REST API tutorials](https://dzone.com/articles/rest-api-tutorials)
* [medium: Do I Need an API Gateway if I Use a Service Mesh? 🌟🌟](https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/)
## API Testing
* [softwaretestingportal.com: API Testing, Key Terminologies and more…..](http://www.softwaretestingportal.com/2020/03/31/api-testing/)
## Related
* [Creando un API REST en Java (parte 1)](https://www.oscarblancarteblog.com/2018/06/25/creando-un-api-rest-en-java-parte-1/)
* [Dzone: How to Create a REST API With Spring Boot](https://dzone.com/articles/how-to-create-rest-api-with-spring-boot)
* [Dzone: Step-By-Step Spring Boot RESTful Web Service Complete Example](https://dzone.com/articles/spring-boot-restful-web-service-complete-example)

View File

@@ -1,2 +1,7 @@
# Microsoft Azure
- [Microsoft Azure](https://azure.microsoft.com/)
- [Microsoft Docs](https://docs.microsoft.com/)
- [Azure Docs](https://docs.microsoft.com/azure)
## Azure Traffic Manager
- [Azure Traffic Manager](https://docs.microsoft.com/azure/traffic-manager/)

View File

@@ -2,3 +2,6 @@
- [consul.io](https://www.consul.io/)
- [medium: Consul in Kubernetes — Pushing to Production](https://medium.com/swlh/consul-in-kubernetes-pushing-to-production-223506bbe8db)
- [medium: HashiCorp Consul: Multi-Cloud and Multi-Platform Service Mesh](https://medium.com/hashicorp-engineering/hashicorp-consul-multi-cloud-and-multi-platform-service-mesh-372a82264e8e)
## Consul Connect
- [consul Connect](https://www.consul.io/docs/connect/index.html)

View File

@@ -2,6 +2,7 @@
- [API Landscape and API Marketplaces](#api-landscape-and-api-marketplaces)
- [API Marketplaces](#api-marketplaces)
- [Rapid API Marketplace. Free Public & Open REST APIs](#rapid-api-marketplace-free-public--open-rest-apis)
- [Apis.guru Large Archive of Sample OpenAPI Descriptions](#apisguru-large-archive-of-sample-openapi-descriptions)
- [API Managers](#api-managers)
- [Mobile Developer Portals](#mobile-developer-portals)
- [Automotive](#automotive)
@@ -24,6 +25,9 @@
- [Rapid API:](https://rapidapi.com/) Find and Connect to Thousands of APIs. RapidAPI is the world's largest API Marketplace, is used by over one million developers to find, test, and connect to thousands of APIs — all with a single account, API Key, and SDK.
- [dzone: RapidAPI Provides API Marketplace and Insight](https://dzone.com/articles/rapidapi-provides-api-marketplace-and-insight) APIs are driving businesses and innovation.
### Apis.guru Large Archive of Sample OpenAPI Descriptions
- [apis.guru/openapi-directory: large archive of sample OpenAPI descriptions](https://apis.guru/openapi-directory/)
## API Managers
- [moesif.com: How to choose the right API Gateway for your platform: Comparison of Kong, Tyk, Apigee, and alternatives](https://www.moesif.com/blog/technical/api-gateways/How-to-Choose-The-Right-API-Gateway-For-Your-Platform-Comparison-Of-Kong-Tyk-Apigee-And-Alternatives/)
- [Google Apigee API Manager](https://cloud.google.com/apigee/) Apigee is an API management platform for developing, analyzing, securing & scaling various APIs and apps. It provides API technology and services for a wide range of organizations and developers to stimulate the pace of digital business. Through API, Apigee assists businesses to securely share data and services across various channels/devices in order to enhance the customer experience. Companies can manage growth and spikes in API traffic with features like traffic isolation and independent scaling.

8
docs/envoyproxy.md Normal file
View File

@@ -0,0 +1,8 @@
# Envoy Proxy and xDS Protocol
## Envoy Proxy
- [Envoy](https://www.envoyproxy.io/)
## xDS protocol (Envoy's Discovery Service Protocol)
- [xDS REST and gRPC protocol](https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol)
- "The [gRPC project](https://grpc.io/faq/) is adding support for the **xDS protocol**, think Envoy Proxy as a library, which will provide a subset of functionality without an external proxy. 🤯 The best part, xDS based control planes such as Istio, Traffic Director, and Consul Connect should just work." Kelsey Hightower

View File

@@ -79,11 +79,12 @@ Microservices architectures rely on DevOps practices, automation, CI/CD (continu
12. [Streaming & Messaging. Cloud Based Integration 🌟](message-queue.md)
13. [Caching Solutions](caching.md)
14. [Service Mesh](servicemesh.md)
- [Istio - Service Mesh](istio.md)
- [Consul - Service Mesh](consul.md)
- [Linkerd - Service Mesh](https://linkerd.io/)
- [Envoy - Service Mesh](https://www.envoyproxy.io/)
- [Maesh - Service Mesh](https://containo.us/maesh/)
- [Consul](consul.md)
- [Envoy & xDS protocol](envoyproxy.md)
- [Istio](istio.md)
- [Linkerd](linkerd.md)
- [Maesh](maesh.md)
- [Traffic Director](trafficdirector.md)
15. [Security Policy as Code](securityascode.md)
16. [Cloud Native Storage](storage.md)
17. Dev Environment
@@ -103,7 +104,7 @@ Microservices architectures rely on DevOps practices, automation, CI/CD (continu
- [Python - Django & Flask](python.md)
- [Serverless Architectures & Frameworks](serverless.md)
- [Xamarin](xamarin.md)
19. [APIs and RESTful Architecture](apis-and-restful-architecture.md)
19. - [APIs with SOAP, REST and gRPC](api.md)
- [API Marketplaces and Developer Portals🌟](developerportals.md)
- [3scale API Management](3scale.md)
- [Swagger code generator for REST APIs](swagger-code-generator-for-rest-apis.md)

2
docs/linkerd.md Normal file
View File

@@ -0,0 +1,2 @@
# Linkerd Service Mesh
- [Linkerd](https://linkerd.io/)

2
docs/maesh.md Normal file
View File

@@ -0,0 +1,2 @@
# Maesh Service Mesh
- [Maesh](https://containo.us/maesh/)

View File

@@ -50,3 +50,4 @@
## Open Source Alternatives
- [opensource.builders](https://opensource.builders/)
- [free-for.dev](https://free-for.dev/)

8
docs/trafficdirector.md Normal file
View File

@@ -0,0 +1,8 @@
# Traffic Director (Google's Service Mesh)
- [Traffic Director overview](https://cloud.google.com/traffic-director)
- [Google Clouds Traffic Director — What is it and how is it related to the Istio service-mesh?](https://medium.com/cloudzone/google-clouds-traffic-director-what-is-it-and-how-is-it-related-to-the-istio-service-mesh-c199acc64a6d)
- [**Google Traffic Director** and the **L7 Internal Load Balancer** Intermingles **Cloud Native** and **Legacy Workloads**](https://thenewstack.io/google-traffic-director-and-the-l7-internal-load-balancer-intermingles-cloud-native-and-legacy-workloads/)
- [infoq.com: Introducing Traffic Director: Google's Service Mesh Control Plane](https://www.infoq.com/news/2019/04/google-traffic-director/)
# Google L7 Internal Load Balancer
- [L7 Internal HTTP(S) Load Balancing overview](https://cloud.google.com/load-balancing/docs/l7-internal/)

View File

@@ -76,8 +76,12 @@ pages:
- Streaming & Messaging. Cloud Based Integration: message-queue.md
- Service Mesh:
- Service Mesh: servicemesh.md
- Istio Service Mesh: istio.md
- Consul Service Mesh: consul.md
- Consul: consul.md
- Envoy & xDS protocol: envoyproxy.md
- Istio: istio.md
- Linkerd: linkerd.md
- Maesh: maesh.md
- Traffic Director: trafficdirector.md
- Security Policy as Code: securityascode.md
- Cloud Native Storage: storage.md
- Dev Environment:
@@ -96,7 +100,7 @@ pages:
- Serverless Architectures & Frameworks: serverless.md
- Xamarin: xamarin.md
- APIs:
- APIs and RESTful Architecture: apis-and-restful-architecture.md
- APIs with SOAP, REST and gRPC: api.md
- API Marketplaces and Developer Portals: developerportals.md
- 3scale API Management: 3scale.md
- Test Automation with Postman: postman.md