Tworzenie podstawowych endpointów Bokun API w Nuxt/Nitro 1. Struktura endpointów W Nuxt 3 endpointy API definiujemy w folderze server/api/. Dla integracji z Bokun API potrzebujemy stworzyć dwa podstawowe endpointy: Endpoint pobierający ogólne informacje o aktywności Endpoint pobierający harmonogram dostępności 2. Endpoint dla informacji ogólnych Utwórz plik server/api/bokun/general-information/[id]/[lang].ts: typescriptCopyexport default defineEventHandler(async (event) => { const { id, lang } = getRouterParams(event); // Parametry do zapytania do Bokun API const url = `https://api.bokun.io/activity/${id}?lang=${lang}`; const headers = { /* nagłówki autoryzacyjne */ }; // Wykonanie zapytania do Bokun API const response = await $fetch(url, { headers }); // Zwrócenie odpowiedzi return { success: true, data: response }; }); Ten endpoint przyjmuje dwa parametry z URL: id - identyfikator aktywności w Bokun lang - kod języka (np. 'pl', 'en') 3. Endpoint dla harmonogramu Utwórz plik server/api/bokun/schedule/[id]/[dateStart].ts: typescriptCopyexport default defineEventHandler(async (event) => { const { id, dateStart } = getRouterParams(event); // Obliczenie daty końcowej (ostatni dzień miesiąca) const date = new Date(dateStart); const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0); const dateEnd = lastDay.toISOString().split('T')[0]; // Parametry do zapytania do Bokun API const url = `https://api.bokun.io/activity/${id}/schedule?from=${dateStart}&to=${dateEnd}`; const headers = { /* nagłówki autoryzacyjne */ }; // Wykonanie zapytania do Bokun API const response = await $fetch(url, { headers }); // Zwrócenie odpowiedzi return { success: true, data: response }; }); Ten endpoint przyjmuje dwa parametry z URL: id - identyfikator aktywności w Bokun dateStart - data początkowa w formacie YYYY-MM-DD 4. Uwagi implementacyjne Nagłówki autoryzacyjne muszą zawierać: X-Bokun-AccessKey X-Bokun-ApiKey X-Bokun-Timestamp (bieżący czas w sekundach Unix) Adres API Bokun oraz klucze dostępowe powinny być przechowywane w zmiennych środowiskowych i pobierane za pomocą useRuntimeConfig(). Dla poprawy odporności systemu, należy dodać: Obsługę błędów komunikacji z API Walidację parametrów wejściowych Mechanizm ponawiania zapytań w przypadku tymczasowych błędów