Standardy i Formaty
Ta sekcja zawiera wytyczne dotyczące standardów i formatów danych używanych w naszym systemie. Ich przestrzeganie zapewnia spójność i poprawność działania aplikacji.
1. Formaty Daty i Czasu
Format ISO 8601 z przesunięciem strefy czasowej (UTC offset)
Jest to główny format daty i czasu używany w naszych systemach. Zapewnia precyzję i jednoznaczność, uwzględniając strefę czasową.
Przykładowy format: YYYY-MM-DDTHH:mm:ss±HH:mm
Wyjaśnienie elementów:
YYYY: Rok (cztery cyfry, np.2025)MM: Miesiąc (dwie cyfry, np.03)DD: Dzień miesiąca (dwie cyfry, np.09)T: Separator daty i czasu (stała litera "T")HH: Godzina (dwie cyfry, 24-godzinny format, np.13)mm: Minuty (dwie cyfry, np.37)ss: Sekundy (dwie cyfry, np.59)±HH:mm: Przesunięcie strefy czasowej względem UTC (np.+02:00dla czasu środkowoeuropejskiego,-05:00dla czasu wschodniego w USA). Znak+oznacza przesunięcie na wschód od UTC, a-na zachód.
Przykład:
2025-03-09T13:37:59+02:00
Powyższy przykład wskazuje, że data to 3 marca 2025, godzina 13:37:59 w strefie czasowej, która jest 2 godziny do przodu względem Coordinated Universal Time (UTC).
2. Formaty Kwot
Format Decimal
Wszystkie pola związane z kwotami pieniężnymi są reprezentowane jako typ decimal. Zapewnia to precyzję obliczeń finansowych i eliminuje błędy zaokrągleń charakterystyczne dla liczb zmiennoprzecinkowych.
Charakterystyka:
- Typ danych:
decimal - Precyzja: Minimalna precyzja to dwa miejsca po przecinku (dla waluty)
- Format: Liczba dziesiętna z kropką jako separatorem dziesiętnym (np.
123.45) - Zakres: Wartości dodatnie i opcjonalnie ujemne (w zależności od kontekstu)
Przykłady:
amount: 100.00- kwota sto jednostek walutyamount: 1234.56- kwota tysiąc dwieście trzydzieści cztery jednostki i 56 setnychamount: 0.99- kwota mniejsza niż jedna jednostka waluty
Ważne uwagi:
- Nigdy nie używaj typów zmiennoprzecinkowych (
float,double) do reprezentacji kwot pieniężnych - Zawsze zachowuj co najmniej dwa miejsca po przecinku, nawet dla kwot całkowitych (np.
100.00zamiast100) - W komunikacji API używaj formatu string dla zachowania pełnej precyzji dziesiętnej
3. Kody Walut
Standard ISO 4217
Wszystkie waluty w systemie są reprezentowane za pomocą trzyliterowych kodów zgodnych ze standardem ISO 4217. Standard ten zapewnia jednoznaczność i spójność w reprezentacji walut na całym świecie.
Charakterystyka:
- Format: Trzyliterowy kod alfabetyczny (np.
PLN,EUR,USD) - Wielkość liter: Zawsze wielkie litery
- Standard: ISO 4217
- Kodowanie: UTF-8
Przykłady popularnych kodów walut:
PLN- Polski ZłotyEUR- EuroUSD- Dolar AmerykańskiGBP- Funt SzterlingCHF- Frank SzwajcarskiCZK- Korona CzeskaJPY- Jen Japoński
Przykład użycia w JSON:
{
"amount": "100.00",
"currency": "PLN"
}
Ważne uwagi:
- Zawsze używaj trzyliterowych kodów ISO 4217, nigdy symboli walutowych (np.
EURzamiast€) - Kody walut są zawsze zapisywane wielkimi literami
- Nie używaj pełnych nazw walut w komunikacji API (np.
PLNzamiast"Polski Złoty") - Pełną listę kodów walut można znaleźć na stronie: ISO 4217 Currency Codes
4. Kody Krajów
Standard ISO 3166-1 alpha-2
Kody krajów w systemie są reprezentowane za pomocą dwuliterowych kodów zgodnych ze standardem ISO 3166-1 alpha-2. Jest to międzynarodowy standard identyfikacji krajów i terytoriów zależnych.
Charakterystyka:
- Format: Dwuliterowy kod alfabetyczny (np.
PL,US,DE) - Wielkość liter: Zawsze wielkie litery
- Standard: ISO 3166-1 alpha-2
- Zastosowanie: Adresy, numery telefonów, lokalizacje, podatki
Przykłady popularnych kodów krajów:
PL- PolskaDE- NiemcyUS- Stany ZjednoczoneGB- Wielka Brytania
Przykład użycia w JSON:
{
"customer": {
"name": "Jan Kowalski",
"country": "PL",
"phone": "+48123456789"
}
}
Ważne uwagi:
- Zawsze używaj dwuliterowych kodów ISO 3166-1 alpha-2
- Kody krajów są zawsze zapisywane wielkimi literami
- Nie używaj pełnych nazw krajów w komunikacji API (np.
PLzamiast"Polska") - Pełną listę kodów krajów można znaleźć na stronie: ISO 3166 Country Codes
5. Adresy Email
Format RFC 5322
Adresy email w systemie muszą być zgodne ze standardem RFC 5322. Jest to podstawowy standard definiujący format adresów poczty elektronicznej.
Charakterystyka:
- Format:
local-part@domain(np.[email protected]) - Wielkość liter: Małe litery (rekomendowane, chociaż standard dopuszcza wielkie)
- Maksymalna długość: 254 znaki (cały adres)
- Dopuszczalne znaki: Litery, cyfry, kropka, myslnik, podkreślnik w części lokalnej
Przykłady poprawnych adresów email:
Przykład użycia w JSON:
{
"customer": {
"name": "Jan Kowalski"
}
}
Ważne uwagi:
- Zawsze waliduj format adresu email przed zapisaniem w systemie
- Rekomendowane jest użycie małych liter dla spójności
- Adresy email są zawsze przesyłane jako string
- System powinien obsługiwać adresy z międzynarodowymi domenami (IDN)
- Przed wysłaniem kluczowych informacji zaleca się weryfikację adresu email
6. Numery Telefonów
Format E.164
Numery telefonów w systemie muszą być zapisywane zgodnie ze standardem E.164. Jest to międzynarodowy standard numeracji telefonicznej rekomendowany przez ITU-T.
Charakterystyka:
- Format:
+[kod kraju][numer](np.+48123456789) - Znak +: Obowiązkowy prefix
- Maksymalna długość: 15 cyfr (wliczając kod kraju, bez znaku +)
- Bez spacji i separatorów: Tylko cyfry po znaku +
Przykłady poprawnych numerów telefonów:
+48123456789- numer polski+491234567890- numer niemiecki+442012345678- numer brytyjski+16175551212- numer amerykański+33123456789- numer francuski
Przykład użycia w JSON:
{
"customer": {
"phone": "+48123456789",
"country": "PL"
}
}
Ważne uwagi:
- Zawsze zapisuj numery w formacie międzynarodowym z prefiksem
+ - Nie używaj spacji, myślników ani nawiasów w zapisie numeru (np.
+48123456789zamiast+48 123 456 789) - Numery telefonów są zawsze przesyłane jako string
- Przed zapisaniem zaleca się walidację formatu i długości numeru
- Format E.164 ułatwia integracje z usługami SMS i telefonii