Files
thetool/public/docs/preorder-api.yaml
2022-09-14 16:40:07 +02:00

371 lines
10 KiB
YAML

openapi: 3.0.1
info:
title: thetool Preorder API
description: API Dokumentation für thetool Vorbestellung
contact:
name: thetool Development Team
email: thetool-api-support@xinon.at
license:
name: Apache 2.0 License
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.0
servers:
- url: https://thetool.xinon.at/api/v1
tags:
- name: addressdb
description: Abfrage von GWR Daten
- name: preorder
description: Informationen zum Netzgebiet und Speichern von Vorbestellungen
paths:
/addressdb/findAddress:
post:
tags:
- addressdb
summary: Adressen suchen
description: Sucht nach Adressen
operationId: findAddresses
requestBody:
description: |
addressSearchRequest object
Parameter müssen mindestens 3 Zeichen lang sein
`street` ist erforderlich
`zip` muss mindestens 2 Zeichen lang sein
required: true
content:
'application/json':
schema:
$ref: '#/components/schemas/Address'
'application/x-www-form-urlencoded':
schema:
$ref: '#/components/schemas/Address'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: Status string
example: OK
result:
type: object
properties:
addresses:
$ref: '#/components/schemas/Addresses'
'400':
description: |
Bad Request
Parameter missing or malformed
'401':
description: Unauthorized
/addressdb/findStreet:
post:
tags:
- addressdb
summary: Straßen suchen
description: Sucht nach Straßen
operationId: findStreets
requestBody:
description: addressComponentSearchRequest object. Parameter `search` muss mindestens 3 Zeichen lang sein.
required: true
content:
'application/json':
schema:
$ref: '#/components/schemas/addressComponentSearchRequest'
'application/x-www-form-urlencoded':
schema:
$ref: '#/components/schemas/addressComponentSearchRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: Status string
example: OK
result:
type: object
properties:
streets:
$ref: '#/components/schemas/Streets'
'400':
description: |
Bad Request
Parameter missing or malformed
'401':
description: Unauthorized
/addressdb/findZip:
post:
tags:
- addressdb
summary: Postleitzahlen suchen
description: Sucht nach Postleitzahlen
operationId: findZips
requestBody:
description: zipSearchRequest object. Parameter `search` muss mindestens 2 Zeichen lang sein.
required: true
content:
'application/json':
schema:
$ref: '#/components/schemas/zipComponentSearchRequest'
'application/x-www-form-urlencoded':
schema:
$ref: '#/components/schemas/zipComponentSearchRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: Status string
example: OK
result:
type: object
properties:
streets:
$ref: '#/components/schemas/Zips'
'400':
description: |
Bad Request
Parameter missing or malformed
'401':
description: Unauthorized
/addressdb/findCity:
post:
tags:
- addressdb
summary: Ortschaften suchen
description: Sucht nach Ortschaften
operationId: findCity
requestBody:
description: addressComponentSearchRequest object. Parameter `search` muss mindestens 3 Zeichen lang sein.
required: true
content:
'application/json':
schema:
$ref: '#/components/schemas/addressComponentSearchRequest'
'application/x-www-form-urlencoded':
schema:
$ref: '#/components/schemas/addressComponentSearchRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: Status string
example: OK
result:
type: object
properties:
streets:
$ref: '#/components/schemas/Cities'
'400':
description: |
Bad Request
Parameter missing or malformed
'401':
description: Unauthorized
/preorder:
post:
tags:
- preorder
summary: Vorbestellung registrieren
description: "Registriert eine Vorbestellung. Parameter `type` bestimmt Vorbestelltyp: 'interest' = Interessensbekundung, 'provision' = Vorsorgeanschluss"
operationId: submitPreorder
requestBody:
description: PreorderRequest object
required: true
content:
'application/json':
schema:
$ref: '#/components/schemas/preorderRequest'
'application/x-www-form-urlencoded':
schema:
$ref: '#/components/schemas/preorderRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: Status string
example: OK
result:
type: object
properties:
code:
type: string
description: Code für Statusabfrage
'400':
description: |
Bad Request
Parameter missing or malformed
'401':
description: Unauthorized
'404':
description: Adresse oder Wohneinheit nicht gefunden
components:
schemas:
addressComponentSearchRequest:
type: object
properties:
search:
type: string
description: Suchbegriff von mindestens 3 Zeichen Länge
minLength: 3
zipComponentSearchRequest:
type: object
properties:
search:
type: string
description: Suchbegriff von mindestens 2 Zeichen Länge
minLength: 2
Zips:
type: array
items:
type: string
Cities:
type: array
items:
type: string
Streets:
type: array
items:
type: string
Addresses:
type: array
items:
$ref: '#/components/schemas/Address'
Address:
type: object
properties:
street:
type: string
description: Straße
housenumber:
type: string
description: Hausnummer
zip:
type: string
description: PLZ
city:
type: string
description: Ortschaft
required:
- street
preorderRequest:
type: object
properties:
type:
type: string
enum: [interest, provision]
desciption: Vorbestelltyp (`interest` = Interessensbekundung, `provision` = Vorsorgeanschluss)
address:
type: object
properties:
street:
type: string
description: Strasse der Anschlussadresse
housenumber:
type: string
description: Hausnummer der Anschlussadresse
zip:
type: string
description: PLZ der Anschlussadresse
city:
type: string
description: Ort der Anschlussadresse
block:
type: string
description: Block der Anschlussadresse
stock:
type: string
description: Stock der Anschlussadresse
stiege:
type: string
description: Stiege der Anschlussadresse
tuer:
type: string
description: Tür der Anschlussadresse
required:
- street
- housenumber
- zip
- city
customer:
type: object
properties:
company:
type: string
description: Firmenname Kunde
uid:
type: string
description: UID (wenn Firmenkunde)
firstname:
type: string
description: Vorname Kunde
lastname:
type: string
description: Nachname Kunde
street:
type: string
description: Straße Kunde
zip:
type: string
description: PLZ Kunde
city:
type: string
description: Ort Kunde
phone:
type: string
description: Telefonnummer Kunde
email:
type: string
description: Emailadresse Kunde
required:
- firstname
- lastname
- street
- zip
- city
securitySchemes:
api_key_header:
type: apiKey
name: X-Api-Key
in: header
api_key_query:
type: apiKey
name: apikey
in: query
security:
- api_key_header: []
- api_key_query: []