Kontrakt OpenAPI
Wygeneruj typowanego klienta w swoim języku z dokumentu OpenAPI i waliduj względem niego zapytania.
AVS, czyli AutoUncle Vehicle Schema, to otwarty, wersjonowany JSON Schema do opisu samochodu: czym jest, jak jest zbudowany i w co jest wyposażony. Używaj go we własnych systemach, waliduj w siedmiu językach i buduj na API, które posługuje się tym samym modelem tożsamości.
AVS ma dwa rodzaje dokumentów: dokument typu opisuje samochód w wersji fabrycznej, np. BMW 320e G20 Sedan z pakietem M Sport; dokument pojazdu opisuje jeden fizyczny egzemplarz tego typu, z jego numerem VIN, przebiegiem, kolorem i historią. Licencja Apache-2.0, bez danych katalogowych.
AVS mówi, czym jest samochód. Ile jest wart i gdzie jest wystawiony na sprzedaż, opisuje się gdzie indziej.
Wymagane są tylko marka i model. Nic nie jest zgadywane, a brak trzeba jawnie zaznaczyć.
Każdy rekord katalogowy podaje swoje identyfikatory w dowolnym schemacie, np. AutoUncle, Wikidata czy KBA HSN/TSN, i żaden nie jest uprzywilejowany.
Jednostki są częścią nazw pól, wartości są zgodne z unijnym świadectwem zgodności (CoC) i WLTP, a kraje, waluty i numery VIN używają kodów ISO.
{
"avs": { "version": "0.3", "kind": "type" },
"identity": {
"brand": {
"name": "BMW",
"ids": [
{ "scheme": "autouncle", "value": "b-example0001" },
{ "scheme": "wikidata", "value": "Q26678" }
]
},
"model": {
"name": "3 Series",
"localNames": { "DK": "3-serie" }
},
"generation": { "name": "3 Series (G20/G21)", "code": "G20" },
"drivetrain": {
"name": "320e (204 Hp) Plug-in Hybrid Steptronic"
}
},
"specification": {
"powertrain": {
"energy": ["petrol", "electricity"],
"electrification": "phev",
"powerKw": 150, "torqueNm": 300
}
},
"equipment": {
"trim": {
"name": "M Sport",
"variations": ["M Sportpakke", "M-Sport"]
}
}
}
Marka, model, generacja i faza, następnie nadwozie i układ napędowy jako niezależne fakty oraz wersja wyposażenia, pakiety i opcje z nazwy. Nasze API identyfikują samochody tą samą ścieżką, od marki i modelu do generacji, wersji silnikowej i wersji wyposażenia, ze stałymi identyfikatorami, które możesz zapisać w AVS w schemacie autouncle.
Każdy pakiet zawiera schemat i walidator, który zwraca każdy błąd wraz ze wskaźnikiem JSON Pointer. Pakiety są generowane ze schematu, nigdy pisane ręcznie, a ich wersja zawsze odpowiada wersji schematu.
| Język | Pakiet | Walidacja |
|---|---|---|
| Ruby | autouncle-avs | AVS.validate(doc) |
| TypeScript / JavaScript | @autouncle/avs | validate(doc) |
| Python | autouncle-avs | avs.validate(doc) |
| Go | github.com/AutoUncle/avs/packages/go | avs.Validate(b) |
| Java / JVM | com.autouncle:avs | Avs.validate(json) |
| .NET | AutoUncle.Avs | AvsSchema.Validate(json) |
| PHP | autouncle/avs | Avs::validate($doc) |
Wygeneruj typowanego klienta w swoim języku z dokumentu OpenAPI i waliduj względem niego zapytania.
Błędy to dokumenty problemów zgodne z RFC 9457, ze stałym kodem, wskazaniem pola i sugerowaną poprawką.
Kraje według ISO 3166, waluty według ISO 4217 i numery VIN według ISO 3779, w zapytaniach i wynikach.
Każda wycena przyjmuje klucz idempotencji, więc ponowione zapytanie nigdy nie zostanie naliczone dwukrotnie.
To samo API jako narzędzia dla agentów AI, a do tego skill integracyjny i llms.txt dla asystentów programowania.
Przeczytaj schemat, wygeneruj klienta z kontraktu OpenAPI i wyceń swój pierwszy samochód z bezpłatnym kluczem testowym.