Powrót do realizacji
Powrót do realizacji
Klient
Pinpoint
Branża
Applicant Tracking System
Produkt
Generator dokumentacji API
Data
2025
Umiejętności
Ruby on Rails
Graphiti
OpenAPI
Pinpoint to nowoczesna platforma typu Applicant Tracking System (ATS), zaprojektowana w celu uproszczenia złożonych procesów rekrutacyjnych w średnich i dużych przedsiębiorstwach. System wspiera zespoły HR na każdym etapie – od przyciągania talentów i zarządzania aplikacjami, po onboarding nowych pracowników. Rozwiązanie wyróżnia się elastycznością, pozwalając na efektywne zarządzanie rekrutacją oraz zapewnia bezpieczeństwo i zgodność z globalnymi standardami.
Głównym celem była optymalizacja pracy deweloperów Pinpoint poprzez pełną automatyzację generowania specyfikacji API. Projekt obejmował: Stworzenie narzędzia typu "plug-and-play" które automatycznie generuje schematy, przykłady zapytań i odpowiedzi na podstawie zasobów. Zgodność ze standardami: Zapewnienie pełnej kompatybilności generowanych plików JSON/YAML z platformą ReadMe.io. Konfigurowalność: możliwość elastycznego zarządzania tym, które zasoby mają być widoczne w publicznej dokumentacji.
Klient korzysta z usługi ReadMe do generowania dokumentacji API na podstawie pliku openapi.yaml, który opisuje API w standardzie OpenAPI. Jednak plik openapi.yaml musi być aktualizowany ręcznie przy każdej zmianie w API implementowanym za pomocą Graphiti w Ruby on Rails. Graphiti jest potężnym frameworkiem, lecz mało popularnym, dlatego nie ma gotowych narzędzi automatyzujących generowanie dokumentacji. W efekcie zespół klienta spędzał znaczną część czasu na ręcznej edycji pliku YAML zamiast faktycznych prac deweloperskich i wprowadzania nowych funkcjonalności.
Graphiti pozwala definiować różnorodne relacje (has_many, belongs_to, polymorphic, etc.) oraz typy pól. Trzeba było zapewnić, że generator poprawnie odwzoruje je w specyfikacji OpenAPI.
Dla każdej operacji HTTP trzeba było wygenerować przykładowe requesty, response’y oraz ich schematy. Zadbanie o czytelność i użyteczność tych przykładów w docelowej dokumentacji na ReadMe.io.
Dodaliśmy initializer umożliwiający ustawienie podstawowych opcji, włączanie/wyłączanie poszczególnych zasobów i modyfikowanie dokumentacji za pomocą własnego kodu. Przygotowaliśmy instrukcję integracji w dokumentacji README gema.
Gem generujący dokumentację: dostarczony gem pozwala w prosty sposób włączyć automatyczne generowanie specyfikacji OpenAPI (JSON i YAML) z definicji Graphiti w Rails, w tym automatycznie aktualizować dokumentację w ReadMe.io w ramach CI.