Zum Hauptinhalt springen

Get public list of enabled countries

GET 

/company/country/

Gibt eine paginierte Liste der im System aktivierten Länder zurück. Dieser Endpunkt stellt die verfügbaren Länder für die Verwendung in Formularen, Filtern und geografischen Auswahlen bereit.

Ziel

Frontend-Anwendungen und externen Integrationen eine aktualisierte Liste der von der Plattform unterstützten Länder für die Unternehmensregistrierung, Adresserstellung und logistische Operationen zur Verfügung zu stellen.

Anwendungsfälle

  • Ausfüllen von Länderauswahlfeldern in Registrierungsformularen
  • Anzeigen verfügbarer Serviceregionen für Benutzer
  • Filtern von Auktionen oder Lieferungen nach geografischem Gebiet
  • Validieren von von Benutzern bereitgestellten Ländercodes

Authentifizierung

Dies ist ein ÖFFENTLICHER Endpunkt. Erfordert keine Authentifizierung.

Wichtige Hinweise

  • Gibt nur Länder mit enabled: true zurück
  • Länder mit deleted: true oder enabled: false sind ausgeschlossen
  • Die Felder _id, deleted, enabled, createdAt, updatedAt, __v werden aus der Antwort gefiltert
  • Nur das Feld code ist bei allen Datensätzen garantiert vorhanden
  • Die optionalen Felder name und iso können bei einigen Ländern vorhanden sein
  • Paginierung implementiert mit mongoose-paginate-v2
  • Die Standard-Seitengröße stammt aus process.env.ITEMS_PAGE (normalerweise 25)

Beispielanfrage:

# Erste Seite mit Standardlimit (25) abrufen
GET /company/country/

# Zweite Seite mit 10 Ergebnissen abrufen
GET /company/country/?page=2&limit=10

# Alle verfügbaren Länder abrufen (wenn weniger als 50)
GET /company/country/?limit=50

Beispielantwort:

\{
status: 200,
data: \{
docs: [
\{code: es\},

<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>

<ParamsDetails
parameters={[{"name":"page","in":"query","description":"Seitenzahl zum Abrufen (ab 1 indexiert).\n\n- Mindestwert: 1\n- Standardwert: 1\n- Ungültige Werte (< 1, NaN) können von mongoose-paginate verarbeitet werden","required":false,"schema":{"type":"integer","minimum":1,"default":1,"example":1}},{"name":"limit","in":"query","description":"Maximale Anzahl von Ergebnissen pro Seite.\n\n- Minimum: 1\n- Standard: 25 (aus process.env.ITEMS_PAGE)\n- Hinweis: Derzeit wendet das Backend keine maximale Obergrenze an","required":false,"schema":{"type":"integer","minimum":1,"default":25,"example":10}}]}
>

</ParamsDetails>

<RequestSchema
title={"Body"}
body={undefined}
>

</RequestSchema>

<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Erfolgreicher Vorgang. Gibt die paginierte Liste der aktivierten Länder zurück.\n\nDie Antwort enthält die vollständigen Paginierungs-Metadaten von mongoose-paginate-v2.","content":{"application/json":{"schema":{"type":"object","required":["status","data"],"properties":{"status":{"type":"integer","description":"HTTP-Statuscode","example":200},"data":{"type":"object","required":["docs","totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage"],"description":"Seitendaten, die vom mongoose-paginate-v2-Plugin generiert werden.\n\nDieses Objekt enthält die paginierten Ergebnisse und Metadaten über\nden Paginierungszustand.","properties":{"docs":{"type":"array","description":"Array von Länderdokumenten für die aktuelle Seite","items":{"type":"object","required":["code"],"properties":{"code":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[a-z]{2}$","description":"ISO 2-Buchstaben-Ländercode (Kleinbuchstaben).\nDies ist das einzige garantierte Feld in öffentlichen Antworten.","example":"es"},"name":{"type":"string","description":"Ländername auf Englisch.\n**OPTIONAL**: Nicht für alle Länder ist dieses Feld definiert.","example":"Spain"},"iso":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","description":"ISO 3-Buchstaben-Ländercode (ISO 3166-1 alpha-3).\n**OPTIONAL**: Nicht für alle Länder ist dieses Feld definiert.","example":"ESP"}},"description":"Öffentliche Version des Country-Modells, zurückgegeben von GET /company/country/.\n\nDieses Schema enthält nur Felder, die im öffentlichen Endpunkt sichtbar sind.\nInterne Felder (`_id`, `deleted`, `enabled`, `createdAt`, `updatedAt`, `__v`)\nwerden vom Controller mittels select gefiltert:\n`-_id -deleted -enabled -createdAt -updatedAt -__v`\n\n**Wichtig**: Nur `code` ist garantiert vorhanden.\nDie Felder `name` und `iso` sind optional und existieren möglicherweise nicht in allen Datensätzen.","example":{"code":"es","name":"Spain","iso":"ESP"},"title":"CountryPublic"}},"totalDocs":{"type":"integer","description":"Gesamtzahl der Dokumente, die dem Filter entsprechen","minimum":0,"example":22},"limit":{"type":"integer","description":"Maximale Anzahl der Ergebnisse pro Seite","minimum":1,"example":25},"page":{"type":"integer","description":"Aktuelle Seitenzahl (1-basiert)","minimum":1,"example":1},"totalPages":{"type":"integer","description":"Gesamtzahl der verfügbaren Seiten","minimum":1,"example":1},"pagingCounter":{"type":"integer","description":"Der Startindex des ersten Dokuments auf der aktuellen Seite.\nNützlich für die Anzeige von Zeige X–Y von Z Ergebnissen.","minimum":1,"example":1},"hasPrevPage":{"type":"boolean","description":"Zeigt an, ob eine vorherige Seite vorhanden ist","example":false},"hasNextPage":{"type":"boolean","description":"Zeigt an, ob eine nächste Seite existiert.","example":false},"prevPage":{"type":"integer","nullable":true,"description":"Seitenzahl der vorherigen Seite.\n`null`, wenn es keine vorherige Seite gibt.","example":null},"nextPage":{"type":"integer","nullable":true,"description":"Seitennummer der nächsten Seite.\n`null`, wenn es keine nächste Seite gibt.","example":null}}}},"description":"Standardmäßige paginierte Antwort für Endpunkte der Länderliste.\n\nDiese Struktur wird sowohl von öffentlichen als auch von Admin-Endpunkten verwendet:\n- GET /company/country/ (öffentlich, nur aktivierte)\n- GET /company/country/all (Admin, inklusive deaktivierte)\n\nDie Antwort umhüllt die Paginierungsdaten in einem standardisierten API-Envelope:\n`{status: number, data: PaginationObject}`","example":{"status":200,"data":{"docs":[{"code":"es"},{"code":"pt"},{"code":"fr"},{"code":"de","name":"Germany","iso":"DEU"}],"totalDocs":22,"limit":25,"page":1,"totalPages":1,"pagingCounter":1,"hasPrevPage":false,"hasNextPage":false,"prevPage":null,"nextPage":null}},"title":"CountriesResponse"},"example":{"status":200,"data":{"docs":[{"code":"es"},{"code":"pt"},{"code":"fr"},{"code":"de","name":"Germany","iso":"DEU"},{"code":"it","name":"Italy","iso":"ITA"}],"totalDocs":22,"limit":25,"page":1,"totalPages":1,"pagingCounter":1,"hasPrevPage":false,"hasNextPage":false,"prevPage":null,"nextPage":null}}}},"headers":{}},"500":{"description":"Interner Serverfehler","content":{"application/json":{"schema":{"type":"object","required":["status","message"],"properties":{"status":{"type":"integer","description":"HTTP-Statuscode","minimum":400,"maximum":599,"example":400},"message":{"type":"string","description":"Fehlercode vom System.\n\nHäufige Fehlercodes (siehe listado_errores_http.txt für die vollständige Liste):\n- NO_TOKEN (401): JWT-Token nicht bereitgestellt\n- TOKEN_NOT_VALID (401): JWT-Token ist ungültig oder abgelaufen\n- NO_ADMIN_ROLE (401): Benutzer verfügt nicht über Administratorrechte\n- INVALID_PARAMETERS (400): Anforderungsparameter sind ungültig\n- NOT_FOUND (404): Angeforderte Ressource nicht gefunden\n- ALREADY_EXIST (401): Ressource mit gleichem Bezeichner existiert bereits\n- UTC_VALIDATION_FAILED (400): UTC-Zeitstempelvalidierung fehlgeschlagen\n- INTERNAL_ERROR (500): Unerwarteter Serverfehler ist aufgetreten\n\nDie Nachricht wird von `handlerError.getErrorMessage(error)` aufgelöst.","example":"INVALID_PARAMETERS"}},"description":"Standardisierte Fehlerantworten für alle API-Endpunkte.\n\nAlle Fehler folgen dem Schema `{status: number, message: string}`.\nDer Statuscode wird sowohl in der HTTP-Antwort als auch im Antwortkörper wiederholt.\n\nFehlermeldungen sind Konstanten im Code und sollten clientseitig\nmit entsprechenden, benutzerfreundlichen Meldungen behandelt werden.","example":{"status":400,"message":"INVALID_PARAMETERS"},"title":"ErrorResponse"},"example":{"status":500,"message":"INTERNAL_ERROR"}}}}}}
>

</StatusCodes>