APIs with SOAP, REST and gRPC
- APIs
- Python FastAPI
- Motivation
- State of the API Report
- Types of API Protocols. Interprocess Communication in Microservices
- Comparisons
- Tools
- Browser APIs
- API Security
- Free Web Services (Public APIs)
- Open Banking
- RPA
- API Ops
- Related
- Video APIs
- API Business Models
- Images
- Tweets
APIs
- wikipedia: API Application Programming Interface
- apifriends.com: What is an API?
- axway.com: What is API Management?
- mulesoft.com: APIs versus web services
- Youtube Playlist: Introduction to APIs
- Devdocs.io API Documentation ๐
- Dzone: 5 Tips for Better REST API Design Good API design is difficult. Maintaining backwards compatibility, effectively testing, handling upgrades, etc. is hard to manage. Check out this guide for help!
- thenewstack.io: 5 Ways to Succeed with an API Gateway
- redhat.com: An Architect’s guide to APIs: SOAP, REST, GraphQL, and gRPC ๐ There are many strategies for data exchange. Here’s a primer on four essentials.
- dev.to: Why RESTful API rules are not enough or good for you to design good apis?
- dzone: Why Is REST API Architecture Gaining Popularity in the Digital Industry? ๐
- amazicworld.com: Why APIs canโt be missed when it comes to DevOps
- medium: API Gateway Part 1 Understanding how API Gateway Works
- rapidapi.com: API vs Microservices [Whatโs the Difference?]
- snipcart.com: API vs. Microservices: A Beginners Guide to Understand Them ๐
- youtube: Local CRUD API Express App with Docker in 5 min
- freecodecamp.org: REST API Best Practices โ REST Endpoint Design Examples ๐
- dzone: API Throttling Strategies When Clients Exceed Their Limit Here’s how to handle clients exceeding API rate limits, as well as a few alternate strategies to explore and implement.
- abdulrwahab.medium.com: API Architecture โ Design Best Practices for REST APIs
- blog.bitsrc.io: API vs Microservices โ Are you using 2 terms for the same concept? No, youโre not, but let me explain
- blog.devgenius.io: Principles & Best practices of REST API Design
- troyhunt.com: Your API versioning is wrong, which is why I decided to do it 3 different wrong ways
- infoq.com: A Standardized, Specification-Driven API Lifecycle
- levelup.gitconnected.com: Whatโs Wrong With Your CRUD APIsโ Besides Everything? Soโฆ I heard you worship CRUDy REST interfaces.
- dzone: Exploring the API-First Design Pattern Learn how the API-first design pattern is a carbon copy of the successful writing approach that John Vester has leveraged for several years.
Python FastAPI
Motivation
- APIs published, APIs consumed: mainstream enterprises increasingly behave like software vendors Mainstream enterprises increasingly reach out to customers with APIs, digital services. Unlike software providers though, many still have mostly on-premises infrastructure.
- You Bet That APIs Power DevOps Tools
State of the API Report
Postman State of the API Report
- postman.com: 2019 Postman State of the API Report ๐
- blog.postman.com: You Can Now Capture Responses Using the Postman Proxy
Smartbear State of the API Report
Types of API Protocols. Interprocess Communication in Microservices
- apifriends.com: What are the different types of APIs? ๐ Types of API Protocols: SOAP, REST and RPC
- vishnuch.tech: Interprocess Communication in Microservices ๐ Different IPC methods in microservices like REST API, gRPC, Kafka, RabbitMQ, etc… which developers should know.
SOAP API Protocol (Simple Object Access Protocol)
- wikipedia: SOAP
- 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
- guru99.com: SOAP Web Services Tutorial: Simple Object Access Protocol. What is SOAP?
- jitendrazaa.com: Create SOAP message using Java
- dzone: Creating a SOAP Web Service With Spring Boot Starter Web Services 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
- geeksforgeeks.org: REST API (Introduction)
- geeksforgeeks.org: REST API Architectural Constraints
- mulesoft.com: What is a RESTful API?
- Dzone refcard: Foundations of RESTful Architecture ๐
- Dzone: REST API tutorials
- dev.to: Make your own API under 30 lines of code ๐
- dzone: REST API Versioning Strategies Today microservices are a hot trend for developing cloud-native applications. API versioning helps to iterate faster when the needed changes are identified.
- freecodecamp.org: What is REST? Rest API Definition for Beginners
OpenAPI Specification (originally known as the Swagger Specification)
- OpenAPI evolved from the Swagger 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.
- Wikipedia: OpenAPI Specification ๐
- OpenAPI FAQ. What is OpenAPI Specification (OAS)? OpenAPI Specification 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
RPC API Protocol (Remote Procedure Call)
- wikipedia: RPC Remote Procedure Call
- open-rpc.org lightweight RPC framework ๐ It layers an interface description on top of JSON-RPC 2.0 and ships with a few tools to help you design, document, and test your APIs.
gRPC
- gRPC
- wikipedia: gRPC
- developers.googleblog.com: Introducing gRPC, a new open source HTTP/2 RPC Framework
- nordicapis.com: Using gRPC to Connect a Microservices Ecosystem
- cncf.io: Think gRPC, when you are architecting modern microservices!
- itnext.io: A minimalist guide to gRPC REST API is good but is it really the best option that we have?
- gendocu.com: RPC API Developer Portal
Asynchronous APIs
WebSockets
- WebSocket
- The State of Real-Time Web in 2016
- SPDY and WebSocket Support at Akamai
- spring.io: YMNNALFT: Websockets Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)!
- blog.bitsrc.io: Deep Dive into WebSockets Understand the important attributes of WebSockets that every developer should know
- betterprogramming.pub: Lambda vs. Step Functions: The Battle of Cost and Performance With the big push to use Step Functions over Lambda, you might be wondering โwhich is more cost-effectiveโ? The answer might surprise you.
- There are use cases for both, but the consensus for production development lives with a hybrid approach: performing a base set of actions synchronously, like validations and id creation and kicking off the rest of the processing asynchronously. Youโd then use a WebSocket to inform the user when the workflow is complete.
- grafana.com: How to use WebSockets to visualize real-time IoT data in Grafana
Socket.io
AsyncAPI
- AsyncAPI Building the future of event-driven architecture. Open source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs.
- thenewstack.io: AsyncAPI Could Be the Default API Format for Event-Driven Architectures
- microcks.io: Simulating CloudEvents with AsyncAPI and Microcks
- The rise of Event Driven Architecture (EDA) is a necessary evolution step towards cloud-native applications. Events are the ultimate weapon to decouple your microservices within your architecture. They are bringing great benefits like space and time decoupling, better resiliency and elasticity.
- But events come also with challenges! One of the first you are facing when starting up as a development team - aside the technology choice - is how to describe these events structure? Another challenge that comes very quickly after being: How can we efficiently work as a team without having to wait for someone elseโs events?
- Weโll explore those particular two challenges and see how to simulate events using CloudEvents, AsyncAPI and Microcks.
- AsyncAPI is an industry standard for defining asynchronous APIs. Our long-term goal is to make working with EDAs as easy as it is to work with REST APIs.
- Microcks is an Open source Kubernetes-native tool for mocking/simulating and testing APIs. One purpose of Microcks is to turn your API contract (OpenAPI, AsyncAPI, Postman Collection) into live mocks in seconds. It means that once it has imported your AsyncAPI contract, Microcks start producing mock events on a message broker at a defined frequency. Using Microcks you can then simulate CloudEvents in seconds, without writing a single line of code. Microcks will allow the team relying on input events to start working without waiting for the team coding the event publication.
- asyncapi.com: AsyncAPI and CloudEvents I’ve been receiving the same question for a long time now: Should I use CloudEvents or AsyncAPI? โ And my response has always been the same: it depends!
- CloudEvents: a specification for describing event data in a common way. CloudEvents seeks to ease event declaration and delivery across services, platforms and beyond!
- AsyncAPI: Create machine-readable definitions of your event-driven APIs.
Comparisons
- blog.bitsrc.io: Not All Microservices Need to Be REST โ 3 Alternatives to the Classic
- levelup.gitconnected.com: Truth About { SOAP vs REST vs GRPC vs GraphQL } Checklist
- medium: REST, RPC, GraphQLโฆ What to choose? API protocols comparison from the practical straightpoint
- blog.logrocket.com: GraphQL vs. gRPC vs. REST: Choosing the right API
SOAP vs REST
- geeksforgeeks.org: Difference between REST API and SOAP API
- dzone: A Comprehensive Guide to 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 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
- reply.com: Web Services: 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.
- baeldung.com: REST vs SOAP
REST vs OpenAPI vs gRPC
- REST vs. gRPC: Battle of the APIs
- 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.
- imaginarycloud.com: gRPC vs REST: Comparing APIs Architectural Styles
REST vs GraphQL vs gRPC
Tools
API Testing
- softwaretestingportal.com: API Testing, Key Terminologies and more…
- dzone.com: 10 API Testing Tips for Beginners (SOAP and REST) Let’s take a look at ten API testing tips for beginners with a focus on REST APIs and SOAP APIs.
- blog.testproject.io: Top 10 API Testing Tools to Watch in 2020 ๐
- mockoon ๐ Create mock APIs in seconds. Mockoon is the easiest and quickest way to run mock API locally. No remote deployment, no account required, open source.
- thenewstack.io: 4 Essential Tools for Protecting APIs and Web Applications
- youtube: API Testing Part 1- API Core Concepts
- blog.testproject.io: API Testing 101 ๐
- microcks.io ๐ Open source Kubernetes Native tool for API Mocking and Testing. If you are looking for a tool that helps in microservices API testing on Kubernetes it is worth taking a look at microcksio. It supports OpenAPI 3 and e.g. Kafka with Avro encoding
- tricentis.com: Getting started with automated continuous performance testing
- dev.to: Top 15 Automated API Testing Tools
- opensource.com: 3 ways to test your API with Python Unit testing can be daunting, but these Python modules will make your life much easier.
GraphQL
- GraphQL A query language for your API
- How is the OpenAPI Specification different from GraphQL? 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.
- Hasura Launches Beta of GraphQL-Based Remote Joins Tool
- thenewstack.io: Why Backend Developers Should Fall in Love with GraphQL too
- blog.dream11engineering.com: Lessons learned from running GraphQL at scale
- world.hey.com: Another REST vs GraphQL comparison
- dzone: A Schema Architecture for Microservices
- medium.datadriveninvestor.com: Everything You Wanted to Know About GraphQL (But Were Afraid to Ask) APIโs are Everywhere now. So, modern developers need an efficient Query Language, GraphQL. Learn everything about this query language used by Twitter, Facebook, Github, Shopify, Pinterest and thousands more.
Hasura
- Hasura ๐ Instant realtime GraphQL APIs for all your data
- Build modern apps and APIs 10x faster
- TickInstant GraphQL & REST APIs
- TickBuilt in authorization for secure data access
- TickOpen source
Browser APIs
- betterprogramming.pub: 4 Awesome Browser APIs You Might Not Be Using Yet Keep them handy. They can be super useful!
API Security
- devops.com: Web Application Security is not API Security ๐
- biztechmagazine.com: 6 Steps to Improved API Security Application programming interfaces are critical to businesses. Tech leaders must do more to protect them.
- portswigger.net: Introducing vAPI โ an open source lab environment to learn about API security
Free Web Services (Public APIs)
Open Banking
RPA
API Ops
- thenewstack.io: How Platform Ops Teams Should Think About API Strategy Platform Ops Is API Ops
Related
- medium: Do I Need an API Gateway if I Use a Service Mesh? ๐
- Dzone: How to Create a REST API With Spring Boot
- Dzone: Step-By-Step Spring Boot RESTful Web Service Complete Example
- Creando un API REST en Java (parte 1)
- dev.to: Rapid API Creation with AWS Amplify
- portal.dev Build beautiful API documentation. Portal lets you create, publish, and maintain your API docs with ease.
- openapi-comment-parser A clean and simple way to document your code for generating OpenAPI (Swagger) specs.
Video APIs
API Business Models
Images
Tweets
Click to expand!
People complain about tooling fatigue but web dev in 2021 is 10x simpler than in 2011. You just gotta pick the right tools.
— gunar.uk (@gunar) May 21, 2021
Infra: @PulumiCorp
Data: @PostgreSQL
API: @HasuraHQ
Frontend: @vercel's NextJS
And no proprietary bullshitโ100% open source!