# Overview # Key Considerations There are many available protocols that can be used when designing an API. They are summarized in the table below. | Protocol | Description | Pros | Cons | Use Cases | | ------------------------------------------ | --------------------- | ----------------- | ----------------- | ---------------------- | | REpresentational State Transfer ([[REST]]) | ![[REST#Overview]] | ![[REST#Pros]] | ![[REST#Cons]] | ![[REST#Use Cases]] | | [[GraphQL]] | ![[GraphQL#Overview]] | ![[GraphQL#Pros]] | ![[GraphQL#Cons]] | ![[GraphQL#Use Cases]] | | Remote Procedure Call ([[gRPC]]) | ![[gRPC#Overview]] | ![[gRPC#Pros]] | ![[gRPC#Cons]] | ![[gRPC#Use Cases]] | | [[SOAP]] | ![[SOAP#Overview]] | ![[SOAP#Pros]] | ![[SOAP#Cons]] | ![[SOAP#Use Cases]] | | [[WebSockets]] | | | | | | [[MQTT]] | | | | | | | | | | | | | | | | | # Implementation Details - URL - Header / Body ## Performance Options for APIs #flashcard - [[Pagination]] - Load More - Infinite Scrolling <!--ID: 1751507777162--> # Useful Links - Stripe APIs #ReadLater # Related Topics - Internet of Things ([[IoT]]) - [[API Gateway]] - [[Postman]]