Как определяется количество API в микросервисной архитектуре?

«Как определяется количество API в микросервисной архитектуре?» — вопрос из категории Архитектура, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Количество API в микросервисной архитектуре определяется количеством и ответственностью отдельных сервисов. Каждый сервис, как правило, предоставляет свой собственный API для взаимодействия.

Ключевые моменты:

  • Один сервис — один API: Каждый микросервис инкапсулирует свою бизнес-логику и предоставляет к ней доступ через свой API (REST, gRPC, GraphQL).
  • Типы API: Различают внутренние API (для межсервисной коммуникации) и внешние API (публичные, для клиентов или фронтенда).
  • Пример: Система с сервисами User, Order, Payment будет иметь как минимум три отдельных API.

Практический пример REST API для сервиса пользователей (Spring Boot):

@RestController
@RequestMapping("/api/users")
public class UserController {
    @GetMapping("/{id}")
    public ResponseEntity<User> getUser(@PathVariable Long id) {
        User user = userService.findById(id);
        return ResponseEntity.ok(user);
    }
}

Фактическое число конечных точек (endpoints) внутри каждого API зависит от функциональности сервиса.