Какой интерфейс использовался для интеграции сервиса с маркетплейсами?

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

Ответ

Для интеграции использовался REST API с обменом данными в формате JSON.

Ключевые эндпоинты:

  • GET /orders – получение списка заказов.
  • POST /products – синхронизация каталога товаров.
  • PUT /shipments – обновление статусов отгрузки.

Пример реализации контроллера на Spring:

@RestController
@RequestMapping("/api/marketplace")
public class MarketplaceIntegrationController {
    @GetMapping("/orders")
    public ResponseEntity<List<OrderDto>> getOrders(@RequestParam String platform) {
        // Логика получения и преобразования заказов из конкретного маркетплейса
        List<OrderDto> orders = integrationService.fetchOrders(platform);
        return ResponseEntity.ok(orders);
    }
}

Дополнительные механизмы:

  • Вебхуки (Webhooks): Использовались для асинхронных уведомлений от маркетплейсов (например, об изменении статуса заказа).
  • Подтверждение (Acknowledgment): Все входящие данные подтверждались ответом 200 OK для обеспечения надежности доставки.