In microservice-based architectures, a service can communicate to other services for a business task by using an inter-service communication mechanism, as discussed in Chapter 4: Inter-Service Communication. There are two approaches to inter-service communication. One approach is a synchronous mechanism, such as REST calls or Apache Thrift and gRPC. The other approach is an asynchronous mechanism, such as a message-driven or event-driven implementation, via a message broker such as JMS, AQMP, RabbitMQ, and Apache Kafka.
An API gateway will need to support a variety of communication mechanisms, but it can also translate calls between different types of protocol. Please note, however, that it must support a protocol's diversity of multiple microservice usage.