Strona główna / Artykuły / Podstawowe narzędzia dla inżynierów integracji API w Node.js

Podstawowe narzędzia dla inżynierów integracji API w Node.js

Dowiedz się, jak Postman, Swagger/OpenAPI, Node.js oraz Axios/Fetch współpracują ze sobą w celu testowania, dokumentowania i łączenia API między różnymi systemami.

1082 słów

Pisanie interfejsów API to zaledwie jeden aspekt tej pracy.

Inżynierowie, którzy faktycznie łączą systemy ze sobą, spędzają większość czasu na weryfikacji punktów końcowych, przeglądaniu dokumentacji, konfigurowaniu zewnętrznych usług oraz przesyłaniu danych tam i z powrotem pomiędzy platformami.

Pocieszające jest to, że nie wymaga to ogromnego zestawu narzędzi.

Opanuj cztery konkretne narzędzia, a już będziesz spełniać wymagania większości firm wobec programistów specjalizujących się w integracji.

1. Postman: Twoje główne narzędzie do testowania API

Zanim w ogóle napisze się kod, zespoły zazwyczaj sprawdzają, czy API działa poprawnie, używając Postmana.

Można go traktować jako specjalistyczną przeglądarkę stworzoną do interakcji z API.

Postman umożliwia:

  • Wysyłanie zapytań typu GET, POST, PUT i DELETE
  • Krokiwienie sekwencji autoryzacji
  • Dodawanie kluczy API i tokenów JWT do zapytań
  • Zachowuj kolekcje zapytań do ponownego użycia
  • Dziel się tymi zapytaniami w zespole
  • Buduj automatyczne testy dla swoich punktów końcowych
  • Załóżmy, że chcesz sprawdzić trasę logowania:

    POST http://localhost:3000/api/login
    Content-Type: application/json
    
    {
      "email": "john@example.com",
      "password": "123456"
    }
    

    Odpowiedź może wyglądać w ten sposób:

    {
      "token": "eyJhbGc..."
    }
    

    Jedną z najważniejszych funkcji Postmana jest obsługa zmiennych środowiskowych:

    {{baseUrl}}/api/login
    

    Taka konfiguracja pozwala przełączać się między lokalnymi, testowymi a produkcyjnymi środowiskami bez konieczności przepisywania czegokolwiek.

    Zespoły inżynieryjne stale korzystają z Postmana podczas rozwiązywania problemów z integracjami lub sprawdzania API firm trzecich przed włączeniem ich do projektu.

    2. Swagger i OpenAPI: dokumentacja, którą faktycznie czytają programiści

    Wyobraź sobie rozpoczęcie pracy w firmie, która obsługuje setki API.

    Przeglądanie kodu, aby zrozumieć funkcjonowanie poszczególnych punktów końcowych, po prostu nie byłoby skalowalne.

    To właśnie jest problem, który rozwiązują specyfikacje OpenAPI oraz Swagger UI.

    Oto, jak może wyglądać podstawowa definicja OpenAPI:

    openapi: 3.0.0
    paths:
      /users:
        get:
          summary: Get all users
          responses:
            '200':
              description: Success
    

    Swagger bierze takie definicje i przekształca je w dostępną, interaktywną dokumentację, umożliwiając programistom:

    • Badanie dostępnych punktów końcowych
    • Przeglądanie przykładów zapytań
    • Sprawdzanie wymaganej autoryzacji
    • Rozpoczynanie wywołań API bezpośrednio z przeglądarki

    Dodanie Swagger do aplikacji Express wymaga zaledwie kilku kroków. Najpierw należy zainstalować odpowiednie pakiety:

    npm install swagger-ui-express yamljs
    

    Następnie należy je skonfigurować:

    const swaggerUi = require("swagger-ui-express");
    const YAML = require("yamljs");
    const swaggerDocument = YAML.load("./swagger.yaml");
    
    app.use(
      "/api-docs",
      swaggerUi.serve,
      swaggerUi.setup(swaggerDocument)
    );
    

    Posiadanie dokumentacji, którą można przeglądać, znacznie skraca czas wprowadzania nowych użytkowników i ułatwia współpracę zespołom.

    W większych środowiskach korporacyjnych znajomość OpenAPI jest w tym momencie praktycznie obowiązkowa.

    3. Node.js: Filar pracy integracyjnej

    Node.js stał się jedną z najpopularniejszych platform wśród inżynierów zajmujących się integracją.

    Jego projekt oparty na zdarzeniach doskonale sprawdza się przy:

    • REST API
    • Webhookach
    • Mikrosługach
    • Systemach w czasie rzeczywistym
    • Bramkach API
    • Połączeniach z usługami third-party

    Powszechna konfiguracja może wyglądać mniej więcej tak:

    Frontend
       |
    Node.js API Gateway
       |
       +-- Payment Services
       +-- CRM Systems
       +-- ERP Platforms
       +-- Notification Services
    

    Stworzenie prostego API wymaga bardzo niewiele kodu:

    const express = require("express");
    
    const app = express();
    
    app.get("/health", (req, res) => {
      res.json({
        status: "OK"
      });
    });
    
    app.listen(3000);
    

    Node.js jest równie skuteczny przy wywoływaniu zewnętrznych usług:

    const axios = require("axios");
    
    const users = await axios.get(
        "https://api.example.com/users"
      );
    

    A tak samo łatwo radzi sobie z odbieraniem zdarzeń webhooków:

    app.post("/webhook", (req, res) => {
      console.log(req.body);
      res.sendStatus(200);
    });
    

    Dla osoby zajmującej się integracją Node.js często stanowi warstwę łączącą kilka oddzielnych systemów biznesowych.

    4. Axios i Fetch: Komunikacja z innymi usługami

    Znaczna część dnia inżyniera integracji polega na wysyłaniu żądań HTTP.

    W tym obszarze dominują dwa narzędzia: Axios i Fetch.

    Axios

    Axios od dawna jest de facto standardem w tym zakresie.

    Jego instalacja jest prosta:

    npm install axios
    

    Wysyłanie żądania wygląda naturalnie w następujący sposób:

    const response =
      await axios.get(
        "https://api.example.com/users"
      );
    
    console.log(response.data);
    

    Dołączanie nagłówka autoryzacji wygląda tak:

    await axios.get(url, {
      headers: {
        Authorization:
          `Bearer ${token}`,
        "x-api-key":
          process.env.API_KEY
      }
    });
    

    Atuty Axios obejmują:

    • Automaticzne parsowanie odpowiedzi w formacie JSON
    • Wbudowana obsługa czasów wygaśnięcia
    • Interceptory dla żądań
    • Lepsze w obsłudze zarządzanie błędami
    • Fleksybilność potrzebna w środowiskach korporacyjnych

    Fetch

    W najnowszych wersjach Node.js Fetch jest wbudowany.

    Nie trzeba niczego dodatkowo instalować.

    Prosty przykład:

    const response = await fetch(
        "https://api.example.com/users"
      );
    
    const users = await response.json();
    

    Nadsyłanie żądania POST nie jest zbyt trudne:

    await fetch(
      "https://api.example.com/users",
      {
        method: "POST",
        headers: {
          "Content-Type":
            "application/json"
        },
        body: JSON.stringify({
          name: "John"
        })
      }
    );
    

    Fetch jest prosty i wbudowany w przeglądarkę, natomiast Axios nadal jest preferowany w większych projektach korporacyjnych.

    Axios kontra Fetch

    Oba narzędzia zasługują na miejsce w twojej umiejętnościach, ale jeśli celem są role związane z integracją w środowiskach korporacyjnych, warto najpierw skupić się na Axios.

    Zalecana ścieżka nauki

    Jeśli twoim celem jest zostanie inżynierem integracji w Node.js, sensowna jest następująca kolejność kroków:

    1. Zacznij od Postmana, aby opanować testowanie API.
    2. Rozwijaj solidną wiedzę na temat podstaw REST i HTTP.
    3. Opanuj używanie Axiosa do wywoływania zewnętrznych API.
    4. Buduj usługi przy użyciu Express i Node.js.
    5. Zapoznaj się ze Swagger i OpenAPI w celu tworzenia dokumentacji.
    6. Nauč się, jak działają autoryzacje JWT i OAuth 2.0.
    7. Ćwicz tworzenie webhooków i procesów opartych na zdarzeniach.
  • Naucz się technik odporności, takich jak logika ponawiania prób i obsługa czasu wygaśnięcia.
  • Ta sekwencja odzwierciedla sposób, w jaki wiele profesjonalnych zespołów integracyjnych organizuje własne procesy nauki i pracy.

    Ostateczne uwagi

    Najlepsi inżynierowie integracji to ci, którzy nie zapamiętali największej liczby języków programowania.

    To, co ich wyróżnia, to umiejętność skutecznego łączenia systemów ze sobą.

    Postman pomaga w weryfikacji API.

    Swagger ułatwia ich dokumentację i zrozumienie.

    Node.js dostarcza narzędzi do tworzenia samych usług integracyjnych.

    Axios i Fetch umożliwiają komunikację z resztą świata.

    Opanuj te cztery narzędzia, a będziesz miał solidną podstawę do tworzenia integracji, na których codziennie polegają firmy.

    Powiązane materiały