Compare commits

..

16 Commits

Author SHA1 Message Date
Nico Kroll 44cb101990 Added a parameter for default document despatch 2024-06-24 09:43:52 +02:00
Nico Kroll fae00c2a4c Further descriptions and development 2024-06-24 09:42:33 +02:00
Nico Kroll 8aa53558ca Further adjustments during testing and implementation 2024-05-29 14:39:29 +02:00
Nico Kroll 705b1385da Changes during implementation 2024-05-27 12:05:28 +02:00
Nico Kroll 15dfdf22d7 thoughts 2024-05-27 06:23:23 +02:00
Nico Kroll 6d620be849 Adding Tags for more clearance and slight adjustments 2024-05-22 13:59:28 +02:00
Nico Kroll 1441a8b92d Current shop changes for step 1 of the integration 2024-05-21 11:38:59 +02:00
Nico Kroll 8d386222c1 First draft 2024-05-15 13:25:28 +02:00
Nico Kroll a6bbb8bc99 First draft 2024-05-15 08:31:41 +02:00
Nico Kroll e3b1996245 After some internal discussions
It's not straight, but most of the people of this world use a not-straight-"best practice". Yeah :-/
2024-05-15 08:31:30 +02:00
Nico Kroll 0f3f7e063c Restructuring 2024-05-15 08:30:36 +02:00
Nico Kroll bce8ddcefc First draft of our decisions 2024-05-02 09:01:23 +02:00
Nico Kroll 6ef360c66a Some more guides 2024-05-02 09:01:10 +02:00
Nico Kroll 5b712e7c1c Saving some sources 2024-04-19 12:52:31 +02:00
Nico Kroll 1953f22199 Linking of specification 2024-04-19 12:52:15 +02:00
Nico Kroll 6183b3f5ac Reorganisation 2024-04-19 12:51:59 +02:00
17 changed files with 7978 additions and 5373 deletions

View File

@ -1,6 +1,6 @@
# API Documentation for TyrePro
The documentation follows the OpenAPI 3.0.0 specifications. You can read the YAML files manually or use any editor like [Swagger](https://editor.swagger.io/) or similar.
The documentation follows the [OpenAPI 3.0.0 specifications](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.0.md). You can read the YAML files manually or use any editor like [Swagger](https://editor.swagger.io/) or similar.
## Getting Started

28
docs/README.md Normal file
View File

@ -0,0 +1,28 @@
## Licence and source of pdf files
https://github.com/papers-we-love/papers-we-love/tree/main/api_design
## Inspiration
# Naming & Best practices
https://cloud.google.com/apis/design/naming_convention?hl=de
https://restfulapi.net/resource-naming/
https://discuss.jsonapi.org/t/how-to-organize-an-api-using-url-prefixes-or-not-to/1036
https://swagger.io/resources/articles/best-practices-in-api-design/
https://cloud.google.com/blog/products/api-management/restful-web-api-design-best-practices?hl=en
https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design
https://www.astera.com/de/type/blog/api-design-best-practices
# Tech
https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/
https://stackoverflow.blog/2021/10/06/best-practices-for-authentication-and-authorization-for-rest-apis/
https://www.akamai.com/blog/security/rest-api-security-best-practices
# Examples
https://docs.hetzner.cloud/
https://opensource.zalando.com/restful-api-guidelines
https://kubernetes.io/docs/reference/using-api/api-concepts
https://docs.stripe.com/api/prices

BIN
docs/api-design.pdf Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1,617 +0,0 @@
openapi: 3.0.0
info:
title: "TyrePro-API, Article"
version: "1"
servers:
- url: "https://musterreifen.com/api"
description: "Demo server"
- url: "https://onlineservices.demo.rz2.prm-ag.de/O6J20ZebmghzkNgrdD759A/api"
description: "Development server"
paths:
/Articles:
get:
tags:
- "Articles"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/Article"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Articles/{Guid}:
get:
tags:
- "Articles"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/Article"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/MaterialGroups:
get:
tags:
- "MaterialGroups"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/MaterialGroup"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/MaterialGroups/{Guid}:
get:
tags:
- "MaterialGroups"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/MaterialGroup"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/MaterialSubGroups:
get:
tags:
- "MaterialSubGroups"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/MaterialSubGroup"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/MaterialSubGroups/{Guid}:
get:
tags:
- "MaterialSubGroups"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/MaterialSubGroup"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/MaterialTypes:
get:
tags:
- "MaterialTypes"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/MaterialType"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/MaterialTypes/{Guid}:
get:
tags:
- "MaterialTypes"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/MaterialType"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Storages:
get:
tags:
- "Storages"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/Storage"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Storages/{Guid}:
get:
tags:
- "Storages"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/Storage"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/StorageLocations:
get:
tags:
- "StorageLocations"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/StorageLocation"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/StorageLocations/{Guid}:
get:
tags:
- "StorageLocations"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/StorageLocation"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
components:
schemas:
GenericError:
type: "object"
required:
- "Message"
- "Details"
properties:
Message:
type: "string"
Details:
type: "string"
example:
Message: "Ihr Anwender wurde nicht gefunden."
Details: "Progress.Lang.AppError\n Ihr Anwender wurde nicht gefunden.\nat sourcecode.line 123"
_HashValue:
type: "string"
description: "HashValue of the object which you'll need to process write-operations."
example: "f50df554352ac91635f900026860e3371a71999d"
Article:
type: "object"
required:
- "Guid"
- "GuidMaterialType"
- "IsActive"
- "Designation"
properties:
Guid:
type: "string"
GuidMaterialType:
type: "string"
GuidMaterialGroup:
type: "string"
GuidMaterialSubGroup:
type: "string"
IsActive:
type: "boolean"
Designation:
type: "string"
Manufacturer:
type: "string"
ManufacturerArticleNumber:
type: "string"
Ean:
type: "string"
KronprinzNumber:
type: "string"
AlcarNumber:
type: "string"
SuedradNumber:
type: "string"
DiameterInInch:
type: "number"
WidthInMm:
type: "number"
SectionInMm:
type: "number"
LoadIndex:
type: "string"
SpeedIndex:
type: "string"
OffsetInMm:
type: "number"
HubBoreHoleInMm:
type: "number"
HoleCount:
type: "number"
HoleCircleInMm:
type: "number"
WeightInKg:
type: "number"
FuelConsumptionClass:
type: "string"
BrakingPerformanceClass:
type: "string"
NoiseClass:
type: "string"
NoiseLevelInDb:
type: "number"
VehicleClass:
type: "string"
RegulationNumber:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidMaterialType: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidMaterialGroup: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidMaterialSubGroup: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Michelin 205/55R16 91H M+S 3PMSF Alpin 6"
IsActive: true
MaterialGroup:
type: "object"
required:
- "Guid"
- "Designation"
properties:
Guid:
type: "string"
Designation:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Sommerreifen"
MaterialSubGroup:
type: "object"
required:
- "Guid"
- "Designation"
properties:
Guid:
type: "string"
Designation:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "RFT-Seal-Sommer-PKW-Reifen"
MaterialType:
type: "object"
required:
- "Guid"
- "Designation"
properties:
Guid:
type: "string"
Designation:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Reifen"
Storage:
type: "object"
required:
- "Guid"
- "IsActive"
- "Designation"
- "Number"
properties:
Guid:
type: "string"
IsActive:
type: "boolean"
Designation:
type: "string"
Number:
type: "integer"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActive: true
Designation: "Reifen"
Number: 1
StorageLocation:
type: "object"
required:
- "Guid"
- "IsActive"
- "Designation"
- "Number"
properties:
Guid:
type: "string"
GuidStorage:
type: "string"
IsActive:
type: "boolean"
Designation:
type: "string"
Number:
type: "integer"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActive: true
Designation: "Reifen"
Number: 1
securitySchemes:
SessionScheme:
type: http
scheme: bearer
parameters:
_HashValueParameter:
name: "_HashValue"
in: "query"
description: "If you want to process a write operation you shall provide the hashvalue of the current view of the object you want to write to. If someone else has written something before you'll get a 412 response code."
required: true
schema:
type: "string"
default: null
example: "f50df554352ac91635f900026860e3371a71999d"
GuidPathParameter:
name: "Guid"
in: "path"
description: "The primary identifier of the entry (in the database)."
required: true
schema:
type: "string"
default: null
example: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActiveParameter:
name: "IsActive"
in: "query"
description: "Only active elements shall be returned. If null both will get returned."
required: false
schema:
type: "boolean"
default: null
example: true
LimitParameter:
name: "Limit"
in: "query"
description: "Limits the number of result entries."
required: false
schema:
type: "integer"
default: null
minimum: 1
maximum: 2147483647
example: 20
OffsetParameter:
name: "Offset"
in: "query"
description: "Skip the first number of entries."
required: false
schema:
type: "integer"
default: null
minimum: 0
maximum: 2147483647
example: 0
ResponseResolutionDepthParameter:
name: "ResponseResolutionDepth"
in: "query"
description: "If your response object has a field with GuidSomething, this last object will be resolved. Instead of the field GuidSomething you'll get a json object of type Something with it's content. The depth determines how deep this operation shall be. The deeper, the slower your operation will be in general."
required: false
schema:
type: "integer"
default: 0
minimum: 0
maximum: 3
example: 1
SearchTermParameter:
name: "SearchTerm"
in: "query"
description: "Searches the entries and it's content."
required: false
schema:
type: "string"
default: null
example: "mc*onald"
responses:
SessionOfOnlineUserOrHigherRequired:
description: "You need a session of type OnlineUser or TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
SessionOfTyreProUserOrHigherRequired:
description: "You need a session of type TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
GenericError:
description: "Unexpected error like 4XX or 5XX http errors."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"

View File

@ -1,945 +0,0 @@
openapi: 3.0.0
info:
title: "TyrePro-API, Customer and Vehicle"
version: "1"
servers:
- url: "https://musterreifen.com/api"
description: "Demo server"
- url: "https://onlineservices.demo.rz2.prm-ag.de/O6J20ZebmghzkNgrdD759A/api"
description: "Development server"
paths:
/Customers:
get:
tags:
- "Customers"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/Customer"
401:
$ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
post:
tags:
- "Customers"
parameters:
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/Customer"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/Customer"
401:
$ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Customers/{Guid}:
get:
tags:
- "Customers"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/Customer"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
patch:
tags:
- "Customers"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/_HashValueParameter"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/Customer"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/Customer"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Customers/{Guid}/DmsFiles:
get:
tags:
- "Customers"
- "DmsFiles"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/DmsFilesTypeParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/DmsFile"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Customers/custommethods/FindSimilarAccounts:
get:
tags:
- "Customers"
description: "Finds similar accounts. The algorithm uses for example phonetic analysis and more to create the results."
parameters:
- name: "Name1"
in: "query"
required: true
schema:
type: "string"
default: null
example: "Max Mustermann"
- name: "Name2"
in: "query"
required: false
schema:
type: "string"
default: null
- name: "Name3"
in: "query"
required: false
schema:
type: "string"
default: null
- name: "Street"
in: "query"
required: true
schema:
type: "string"
default: null
example: "Musterstraße 123"
- name: "Postalcode"
in: "query"
required: true
schema:
type: "string"
default: null
example: "01234"
- name: "Town"
in: "query"
required: true
schema:
type: "string"
default: null
example: "Musterhausen"
- name: "EMailAddress"
in: "query"
required: false
schema:
type: "string"
default: null
example: "max@mustermann.de"
- name: "SalesTaxIdentificationNumber"
in: "query"
required: false
schema:
type: "string"
default: null
responses:
200:
description: "successful operation"
content:
application/json:
schema:
type: "array"
items:
type: "object"
required:
- "WouldBeChoosenAutomatically"
- "GuidCustomer"
properties:
WouldBeChoosenAutomatically:
type: "boolean"
AutomaticChoiceDescription:
type: "string"
NameSimilarityInPercent:
type: "number"
AddressSimilarityInPercent:
type: "number"
GuidCustomer:
type: "string"
example:
WouldBeChoosenAutomatically: true
AutomaticChoiceDescription: "USt.-IdNr. stimmt überein"
NameSimilarityInPercent: 100
AddressSimilarityInPercent: 97.4
GuidCustomer: "9acea90b-f0d9-2d95-7814-c53b28d87980"
401:
$ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerVehicles:
get:
tags:
- "CustomerVehicles"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/CustomerVehicle"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerVehicles/{Guid}:
get:
tags:
- "CustomerVehicles"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/CustomerVehicle"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
patch:
tags:
- "CustomerVehicles"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/_HashValueParameter"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/CustomerVehicle"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/CustomerVehicle"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerVehicles/{Guid}/CustomerStorages:
get:
tags:
- "CustomerVehicles"
- "CustomerStorages"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/CustomerStorage"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerVehicles/{Guid}/DmsFiles:
get:
tags:
- "CustomerVehicles"
- "DmsFiles"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/DmsFilesTypeParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/DmsFile"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerVehicles/{Guid}/SchedulerAppointments:
get:
tags:
- "CustomerVehicles"
- "SchedulerAppointments"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/SchedulerAppointment"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerVehicles/custommethods/GenerateCsvFile:
get:
tags:
- "CustomerVehicles"
description: "Generates a CSV-file with all customer vehicle information and delivers the binary file content."
parameters:
- $ref: "#/components/parameters/ContentDispositionParameter"
responses:
200:
description: "successful operation"
content:
text/csv:
schema:
type: "string"
format: "binary"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
components:
schemas:
GenericError:
type: "object"
required:
- "Message"
- "Details"
properties:
Message:
type: "string"
Details:
type: "string"
example:
Message: "Ihr Anwender wurde nicht gefunden."
Details: "Progress.Lang.AppError\n Ihr Anwender wurde nicht gefunden.\nat sourcecode.line 123"
_HashValue:
type: "string"
description: "HashValue of the object which you'll need to process write-operations."
example: "f50df554352ac91635f900026860e3371a71999d"
Customer:
type: "object"
required:
- "Guid"
- "Number"
- "IsActive"
properties:
Guid:
type: "string"
GuidBranch:
type: "string"
Number:
type: "integer"
IsActive:
type: "boolean"
Address:
$ref: "#/components/schemas/PostalAddress"
PhoneNumber:
type: "string"
FaxNumber:
type: "string"
MobilphoneNumber:
type: "string"
EMailAddress:
type: "string"
HomepageAddress:
type: "string"
SalesTaxIdentificationNumber:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
Number: 123456
IsActive: true
Address: null
PhoneNumber: "0123456789"
FaxNumber: null
MobilphoneNumber: null
MailAddress: "max@mustermann.de"
HomepageAddress: null
SalesTaxIdentificationNumber: null
CustomerStorage:
type: "object"
required:
- "Guid"
- "Number"
- "Date"
- "IsActive"
- "GuidCustomer"
- "GuidBranch"
- "StorageType"
properties:
Guid:
type: "string"
Number:
type: "integer"
Date:
type: "string"
format: "date"
IsActive:
type: "boolean"
GuidCustomerVehicle:
type: "string"
GuidCustomer:
type: "string"
GuidBranch:
type: "string"
Comment:
type: "string"
DriverName:
type: "string"
ExternalReferenceNumber:
type: "string"
ShallBeWashed:
type: "boolean"
ShallBeBalanced:
type: "boolean"
ShallBeRdksChecked:
type: "boolean"
RimType:
type: "string"
enum:
- "Carbon"
- "AlloyRimOriginal"
- "AlloyRimAftermarket"
- "SteelRim"
- "WithoutRim"
- "Unknown"
GuidCustomerStorageStatus:
type: "string"
GuidMaterialGroup:
type: "string"
StorageType:
type: "string"
enum:
- "Storage"
- "Customer"
GuidStorage:
type: "string"
GuidStorageLocation:
type: "string"
ExternalStorageReferenceNumber:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Number: 123456
Date: "2021-02-02"
IsActive: true
GuidCustomerVehicle: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
Comment: null
DriverName: "Max Mustermann Junior"
ExternalReferenceNumber: null
ShallBeWashed: true
ShallBeBalanced: true
ShallBeRdksChecked: false
RimType: "AlloyRimAftermarket"
GuidCustomerStorageStatus: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidMaterialGroup: "ebb89e89-8d25-809e-7814-c53b686ae164"
StorageType: "Branch"
GuidStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidStorageLocation: "ebb89e89-8d25-809e-7814-c53b686ae164"
ExternalStorageReferenceNumber: null
CustomerVehicle:
type: "object"
required:
- "Guid"
- "GuidCustomer"
- "IsActive"
- "LicenceTagNumber"
properties:
Guid:
type: "string"
GuidCustomer:
type: "string"
IsActive:
type: "boolean"
LicenceTagNumber:
type: "string"
ChassisNumber:
type: "string"
EgTypeApprovalNumber:
type: "string"
KbaNumber1:
type: "string"
KbaNumber2:
type: "string"
VehicleManufacturer:
type: "string"
VehicleDesignation:
type: "string"
VehicleType:
type: "string"
VehicleModel:
type: "string"
RegistrationDate:
type: "string"
format: "date"
FuelType:
type: "string"
DisplacementInCcm:
type: "number"
PowerInKw:
type: "number"
MileageInKm:
type: "number"
TuevDate:
type: "string"
format: "date"
InspectionDate:
type: "string"
format: "date"
UvvDate:
type: "string"
format: "date"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActive: true
LicenceTagNumber: "A-BC 1234"
ChassisNumber: null
KbaNumber1: "8004"
KbaNumber2: "AHE"
VehicleManufacturer: "Skoda"
VehicleDesignation: "Octavia"
VehicleType: "Limosine"
VehicleModel: "1Z, Facelift"
RegistrationDate: "2021-02-02"
DmsFile:
type: "object"
required:
- "Guid"
- "TableName"
- "GuidOfTableName"
- "ProgramIdentifier"
- "ProgramIdentifierDesignation"
- "Type"
properties:
Guid:
type: "string"
TableName:
type: "string"
enum:
- "Customer"
- "CustomerStorage"
- "CustomerVehicle"
- "Document"
- "SchedulerAppointment"
- "DmsFile"
GuidOfTableName:
type: "string"
ProgramIdentifier:
type: "string"
enum:
- "Billing"
- "Cub"
- "Direct"
- "Etirehotel"
- "GlMesstechnik"
- "GudatSolutions"
- "MacsDia"
- "OnlineServices"
- "Printout"
- "PurchaseSource"
- "SalesInterchange"
- "Somplatzki"
- "Zollhof"
ProgramIdentifierDesignation:
type: "string"
Type:
type: "string"
enum:
- "Directory"
- "File"
Designation:
type: "string"
GuidDbBlob:
type: "string"
Description:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
TableName: "DmsFile"
GuidOfTableName: "ebb89e89-8d25-809e-7814-c53b686ae164"
ProgramIdentifier: "Direct"
ProgramIdentifierDesignation: "Manuell hinzugefügte Dateien"
Type: "File"
GuidDbBlob: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: null
Description: null
PostalAddress:
type: "object"
properties:
Salutation:
type: "string"
Name1:
type: "string"
Name2:
type: "string"
Name3:
type: "string"
Street:
type: "string"
Postalcode:
type: "string"
Town:
type: "string"
Township:
type: "string"
GuidAddressState:
type: "string"
example:
Salutation: "Herr"
Name1: "Max Mustermann"
Name2: null
Name3: null
Street: "Musterstra<72>e 123"
Postalcode: "01234"
Town: "Musterhausen"
Township: "Musterviertel"
GuidAddressState: "ebb89e89-8d25-809e-7814-c53b686ae164"
SchedulerAppointment:
type: "object"
required:
- "Guid"
- "Designation"
- "StartMoment"
- "EndMoment"
- "WasCreatedByOnlineScheduler"
properties:
Guid:
type: "string"
Designation:
type: "string"
LicenceTagNumber:
type: "string"
StartMoment:
type: "string"
format: "date-time"
EndMoment:
type: "string"
format: "date-time"
Comment:
type: "string"
WasCreatedByOnlineScheduler:
type: "boolean"
OnlineSchedulerText:
type: "string"
AppointmentMakerEmailAddress:
type: "string"
GuidBranch:
type: "string"
GuidOnlineSchedulerBranch:
type: "string"
GuidCustomerVehicle:
type: "string"
GuidCustomerStorage:
type: "string"
GuidDocument:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Max Müller, A-BC 1234"
LicenceTagNumber: "A-BC 1234"
StartMoment: "2021-02-02T10:36:10.172"
EndMoment: "2021-02-02T10:36:10.172"
Comment: null
WasCreatedByOnlineScheduler: true
OnlineSchedulerText: "Service: Ich möchte einen Termin für eine Einlagerung haben."
AppointmentMakerEmailAddress: "info@prm-ag.de"
GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidOnlineSchedulerBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomerVehicle: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomerStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
securitySchemes:
SessionScheme:
type: http
scheme: bearer
parameters:
_HashValueParameter:
name: "_HashValue"
in: "query"
description: "If you want to process a write operation you shall provide the hashvalue of the current view of the object you want to write to. If someone else has written something before you'll get a 412 response code."
required: true
schema:
type: "string"
default: null
example: "f50df554352ac91635f900026860e3371a71999d"
ContentDispositionParameter:
name: "ContentDisposition"
in: "query"
description: "How the file is deliverd. Inline is inside the same browser tab i.e.. This parameter takes only effect if parameter BinaryResponse=true."
required: false
schema:
type: "string"
enum:
- "Inline"
- "Attachment"
default: "Inline"
example: "Inline"
DmsFilesTypeParameter:
name: "Type"
in: "query"
description: "Filter by type."
required: false
schema:
type: "string"
enum:
- "Directory"
- "File"
example: "File"
GuidPathParameter:
name: "Guid"
in: "path"
description: "The primary identifier of the entry (in the database)."
required: true
schema:
type: "string"
default: null
example: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActiveParameter:
name: "IsActive"
in: "query"
description: "Only active elements shall be returned. If null both will get returned."
required: false
schema:
type: "boolean"
default: null
example: true
LimitParameter:
name: "Limit"
in: "query"
description: "Limits the number of result entries."
required: false
schema:
type: "integer"
default: null
minimum: 1
maximum: 2147483647
example: 20
OffsetParameter:
name: "Offset"
in: "query"
description: "Skip the first number of entries."
required: false
schema:
type: "integer"
default: null
minimum: 0
maximum: 2147483647
example: 0
ResponseResolutionDepthParameter:
name: "ResponseResolutionDepth"
in: "query"
description: "If your response object has a field with GuidSomething, this last object will be resolved. Instead of the field GuidSomething you'll get a json object of type Something with it's content. The depth determines how deep this operation shall be. The deeper, the slower your operation will be in general."
required: false
schema:
type: "integer"
default: 0
minimum: 0
maximum: 3
example: 1
SearchTermParameter:
name: "SearchTerm"
in: "query"
description: "Searches the entries and it's content."
required: false
schema:
type: "string"
default: null
example: "mc*onald"
responses:
SessionOfOnlineUserOrHigherRequired:
description: "You need a session of type OnlineUser or TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
SessionOfTyreProUserOrHigherRequired:
description: "You need a session of type TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
GenericError:
description: "Unexpected error like 4XX or 5XX http errors."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"

View File

@ -1,687 +0,0 @@
openapi: 3.0.0
info:
title: "TyrePro-API, CustomerStorage"
version: "1"
servers:
- url: "https://musterreifen.com/api"
description: "Demo server"
- url: "https://onlineservices.demo.rz2.prm-ag.de/O6J20ZebmghzkNgrdD759A/api"
description: "Development server"
paths:
/CustomerStorages:
get:
tags:
- "CustomerStorages"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/CustomerStorage"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStorages/{Guid}:
get:
tags:
- "CustomerStorages"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/CustomerStorage"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStorages/{Guid}/CustomerStoragePositions:
get:
tags:
- "CustomerStorages"
- "CustomerStoragePositions"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/CustomerStoragePosition"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStorages/{Guid}/DmsFiles:
get:
tags:
- "CustomerStorages"
- "DmsFiles"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/DmsFilesTypeParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/DmsFile"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStorages/{Guid}/SchedulerAppointments:
get:
tags:
- "CustomerStorages"
- "SchedulerAppointments"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/SchedulerAppointment"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStoragePositions:
get:
tags:
- "CustomerStoragePositions"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/CustomerStoragePosition"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStoragePositions/{Guid}:
get:
tags:
- "CustomerStoragePositions"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/CustomerStoragePosition"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStorageStatus:
get:
tags:
- "CustomerStorageStatus"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/CustomerStorageStatus"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CustomerStorageStatus/{Guid}:
get:
tags:
- "CustomerStorageStatus"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/CustomerStorageStatus"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
components:
schemas:
GenericError:
type: "object"
required:
- "Message"
- "Details"
properties:
Message:
type: "string"
Details:
type: "string"
example:
Message: "Ihr Anwender wurde nicht gefunden."
Details: "Progress.Lang.AppError\n Ihr Anwender wurde nicht gefunden.\nat sourcecode.line 123"
_HashValue:
type: "string"
description: "HashValue of the object which you'll need to process write-operations."
example: "f50df554352ac91635f900026860e3371a71999d"
CustomerStorage:
type: "object"
required:
- "Guid"
- "Number"
- "Date"
- "IsActive"
- "GuidCustomer"
- "GuidBranch"
- "StorageType"
properties:
Guid:
type: "string"
Number:
type: "integer"
Date:
type: "string"
format: "date"
IsActive:
type: "boolean"
GuidCustomerVehicle:
type: "string"
GuidCustomer:
type: "string"
GuidBranch:
type: "string"
Comment:
type: "string"
DriverName:
type: "string"
ExternalReferenceNumber:
type: "string"
ShallBeWashed:
type: "boolean"
ShallBeBalanced:
type: "boolean"
ShallBeRdksChecked:
type: "boolean"
RimType:
type: "string"
enum:
- "Carbon"
- "AlloyRimOriginal"
- "AlloyRimAftermarket"
- "SteelRim"
- "WithoutRim"
- "Unknown"
GuidCustomerStorageStatus:
type: "string"
GuidMaterialGroup:
type: "string"
StorageType:
type: "string"
enum:
- "Storage"
- "Customer"
GuidStorage:
type: "string"
GuidStorageLocation:
type: "string"
ExternalStorageReferenceNumber:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Number: 123456
Date: "2021-02-02"
IsActive: true
GuidCustomerVehicle: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
Comment: null
DriverName: "Max Mustermann Junior"
ExternalReferenceNumber: null
ShallBeWashed: true
ShallBeBalanced: true
ShallBeRdksChecked: false
RimType: "AlloyRimAftermarket"
GuidCustomerStorageStatus: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidMaterialGroup: "ebb89e89-8d25-809e-7814-c53b686ae164"
StorageType: "Branch"
GuidStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidStorageLocation: "ebb89e89-8d25-809e-7814-c53b686ae164"
ExternalStorageReferenceNumber: null
CustomerStoragePosition:
type: "object"
required:
- "Guid"
- "GuidCustomerStorage"
- "PositionDescription"
properties:
Guid:
type: "string"
GuidCustomerStorage:
type: "string"
PositionDescription:
type: "string"
enum:
- "FR"
- "FL"
- "RR"
- "RL"
GuidArticleOfTyre:
type: "string"
TyreDimension:
type: "string"
TyreManufacturer:
type: "string"
TyreProfile:
type: "string"
TyreProfileDepthInMillimeters:
type: "number"
TyreDotYear:
type: "integer"
TyreDotWeek:
type: "integer"
RimDimension:
type: "string"
RimManufacturer:
type: "string"
GuidCustomerStorageStatus:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomerStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
PositionDescription: "FR"
GuidArticleOfTyre: "ebb89e89-8d25-809e-7814-c53b686ae164"
TyreDimension: null
TyreManufacturer: null
TyreProfile: null
TyreProfileDepthInMillimeters: 5.6
TyreDotYear: 21
TyreDotWeek: 42
RimDimension: "7x17"
RimManufacturer: "AEZ"
GuidCustomerStorageStatus: "ebb89e89-8d25-809e-7814-c53b686ae164"
CustomerStorageStatus:
type: "object"
required:
- "Guid"
- "Designation"
properties:
Guid:
type: "string"
Designation:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "In Ordnung"
DmsFile:
type: "object"
required:
- "Guid"
- "TableName"
- "GuidOfTableName"
- "ProgramIdentifier"
- "ProgramIdentifierDesignation"
- "Type"
properties:
Guid:
type: "string"
TableName:
type: "string"
enum:
- "Customer"
- "CustomerStorage"
- "CustomerVehicle"
- "Document"
- "SchedulerAppointment"
- "DmsFile"
GuidOfTableName:
type: "string"
ProgramIdentifier:
type: "string"
enum:
- "Billing"
- "Cub"
- "Direct"
- "Etirehotel"
- "GlMesstechnik"
- "GudatSolutions"
- "MacsDia"
- "OnlineServices"
- "Printout"
- "PurchaseSource"
- "SalesInterchange"
- "Somplatzki"
- "Zollhof"
ProgramIdentifierDesignation:
type: "string"
Type:
type: "string"
enum:
- "Directory"
- "File"
Designation:
type: "string"
GuidDbBlob:
type: "string"
Description:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
TableName: "DmsFile"
GuidOfTableName: "ebb89e89-8d25-809e-7814-c53b686ae164"
ProgramIdentifier: "Direct"
ProgramIdentifierDesignation: "Manuell hinzugefügte Dateien"
Type: "File"
GuidDbBlob: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: null
Description: null
SchedulerAppointment:
type: "object"
required:
- "Guid"
- "Designation"
- "StartMoment"
- "EndMoment"
- "WasCreatedByOnlineScheduler"
properties:
Guid:
type: "string"
Designation:
type: "string"
LicenceTagNumber:
type: "string"
StartMoment:
type: "string"
format: "date-time"
EndMoment:
type: "string"
format: "date-time"
Comment:
type: "string"
WasCreatedByOnlineScheduler:
type: "boolean"
OnlineSchedulerText:
type: "string"
AppointmentMakerEmailAddress:
type: "string"
GuidBranch:
type: "string"
GuidOnlineSchedulerBranch:
type: "string"
GuidCustomerVehicle:
type: "string"
GuidCustomerStorage:
type: "string"
GuidDocument:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Max Müller, A-BC 1234"
LicenceTagNumber: "A-BC 1234"
StartMoment: "2021-02-02T10:36:10.172"
EndMoment: "2021-02-02T10:36:10.172"
Comment: null
WasCreatedByOnlineScheduler: true
OnlineSchedulerText: "Service: Ich möchte einen Termin für eine Einlagerung haben."
AppointmentMakerEmailAddress: "info@prm-ag.de"
GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidOnlineSchedulerBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomerVehicle: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomerStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
securitySchemes:
SessionScheme:
type: http
scheme: bearer
parameters:
_HashValueParameter:
name: "_HashValue"
in: "query"
description: "If you want to process a write operation you shall provide the hashvalue of the current view of the object you want to write to. If someone else has written something before you'll get a 412 response code."
required: true
schema:
type: "string"
default: null
example: "f50df554352ac91635f900026860e3371a71999d"
DmsFilesTypeParameter:
name: "Type"
in: "query"
description: "Filter by type."
required: false
schema:
type: "string"
enum:
- "Directory"
- "File"
example: "File"
GuidPathParameter:
name: "Guid"
in: "path"
description: "The primary identifier of the entry (in the database)."
required: true
schema:
type: "string"
default: null
example: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActiveParameter:
name: "IsActive"
in: "query"
description: "Only active elements shall be returned. If null both will get returned."
required: false
schema:
type: "boolean"
default: null
example: true
LimitParameter:
name: "Limit"
in: "query"
description: "Limits the number of result entries."
required: false
schema:
type: "integer"
default: null
minimum: 1
maximum: 2147483647
example: 20
OffsetParameter:
name: "Offset"
in: "query"
description: "Skip the first number of entries."
required: false
schema:
type: "integer"
default: null
minimum: 0
maximum: 2147483647
example: 0
ResponseResolutionDepthParameter:
name: "ResponseResolutionDepth"
in: "query"
description: "If your response object has a field with GuidSomething, this last object will be resolved. Instead of the field GuidSomething you'll get a json object of type Something with it's content. The depth determines how deep this operation shall be. The deeper, the slower your operation will be in general."
required: false
schema:
type: "integer"
default: 0
minimum: 0
maximum: 3
example: 1
SearchTermParameter:
name: "SearchTerm"
in: "query"
description: "Searches the entries and it's content."
required: false
schema:
type: "string"
default: null
example: "mc*onald"
responses:
SessionOfOnlineUserOrHigherRequired:
description: "You need a session of type OnlineUser or TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
SessionOfTyreProUserOrHigherRequired:
description: "You need a session of type TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
GenericError:
description: "Unexpected error like 4XX or 5XX http errors."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"

View File

@ -1,660 +0,0 @@
openapi: 3.0.0
info:
title: "TyrePro-API, Document"
version: "1"
servers:
- url: "https://musterreifen.com/api"
description: "Demo server"
- url: "https://onlineservices.demo.rz2.prm-ag.de/O6J20ZebmghzkNgrdD759A/api"
description: "Development server"
paths:
/Documents:
get:
tags:
- "Documents"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
- name: "Type"
in: "query"
required: false
description: "Type of the document. Remember: a finished invoice is not active anymore. So try the combinations of Type and IsActive to find your documents."
schema:
type: "string"
enum:
- "Offer"
- "Order"
- "DeliveryNote"
- "Invoice"
- "CreditNote"
example: "Invoice"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/Document"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Documents/{Guid}:
get:
tags:
- "Documents"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/Document"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Documents/{Guid}/DocumentPositions:
get:
tags:
- "Documents"
- "DocumentPositions"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/DocumentPosition"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Documents/{Guid}/DmsFiles:
get:
tags:
- "Documents"
- "DmsFiles"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/DmsFilesTypeParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/DmsFile"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/Documents/{Guid}/SchedulerAppointments:
get:
tags:
- "Documents"
- "SchedulerAppointments"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/IsActiveParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/SchedulerAppointment"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/DocumentPositions:
get:
tags:
- "DocumentPositions"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/DocumentPosition"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/DocumentPositions/{Guid}:
get:
tags:
- "DocumentPositions"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/DocumentPosition"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
components:
schemas:
GenericError:
type: "object"
required:
- "Message"
- "Details"
properties:
Message:
type: "string"
Details:
type: "string"
example:
Message: "Ihr Anwender wurde nicht gefunden."
Details: "Progress.Lang.AppError\n Ihr Anwender wurde nicht gefunden.\nat sourcecode.line 123"
_HashValue:
type: "string"
description: "HashValue of the object which you'll need to process write-operations."
example: "f50df554352ac91635f900026860e3371a71999d"
DmsFile:
type: "object"
required:
- "Guid"
- "TableName"
- "GuidOfTableName"
- "ProgramIdentifier"
- "ProgramIdentifierDesignation"
- "Type"
properties:
Guid:
type: "string"
TableName:
type: "string"
enum:
- "Customer"
- "CustomerStorage"
- "CustomerVehicle"
- "Document"
- "SchedulerAppointment"
- "DmsFile"
GuidOfTableName:
type: "string"
ProgramIdentifier:
type: "string"
enum:
- "Billing"
- "Cub"
- "Direct"
- "Etirehotel"
- "GlMesstechnik"
- "GudatSolutions"
- "MacsDia"
- "OnlineServices"
- "Printout"
- "PurchaseSource"
- "SalesInterchange"
- "Somplatzki"
- "Zollhof"
ProgramIdentifierDesignation:
type: "string"
Type:
type: "string"
enum:
- "Directory"
- "File"
Designation:
type: "string"
GuidDbBlob:
type: "string"
Description:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
TableName: "DmsFile"
GuidOfTableName: "ebb89e89-8d25-809e-7814-c53b686ae164"
ProgramIdentifier: "Direct"
ProgramIdentifierDesignation: "Manuell hinzugefügte Dateien"
Type: "File"
GuidDbBlob: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: null
Description: null
Document:
type: "object"
required:
- "Guid"
- "IsActive"
- "Type"
- "Date"
- "Number"
- "GuidBranch"
- "GuidCustomer"
- "CreationMoment"
- "LastModificationMoment"
- "Address"
properties:
Guid:
type: "string"
IsActive:
type: "boolean"
Type:
type: "string"
enum:
- "Offer"
- "Order"
- "DeliveryNote"
- "Invoice"
- "CreditNote"
Date:
type: "string"
format: "date"
Number:
type: "number"
GuidBranch:
type: "string"
GuidCustomer:
type: "string"
GuidCustomerVehicle:
type: "string"
CreationMoment:
type: "string"
format: "date-time"
LastModificationMoment:
type: "string"
format: "date-time"
Address:
$ref: "#/components/schemas/PostalAddress"
DeliveryAddress:
$ref: "#/components/schemas/PostalAddress"
InvoiceAddress:
$ref: "#/components/schemas/PostalAddress"
GuidDocumentOfOffer:
type: "string"
GuidDocumentOfOrder:
type: "string"
GuidDocumentOfDeliveryNote:
type: "string"
GuidDocumentOfInvoice:
type: "string"
GuidDocumentOfCreditNote:
type: "string"
GuidEmployeeOfSeller:
type: "string"
SalesPriceNet:
type: "number"
SalesPriceGross:
type: "number"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActive: true
Type: "Order"
Date: "2021-02-02"
Number: 123456
Guidbranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
CreationMoment: "2021-02-02T10:36:10.172"
LastModificationMoment: "2021-02-02T10:36:10.172"
Address: null
DeliveryAddress: null
InvoiceAddress: null
SalesPriceNet: 42.12
SalesPriceGross: 50.12
DocumentPosition:
type: "object"
required:
- "Guid"
- "GuidDocument"
- "Number"
- "Type"
properties:
Guid:
type: "string"
GuidDocument:
type: "string"
Number:
type: "number"
Type:
type: "string"
enum:
- "Article"
- "Text"
- "Sum"
- "Set"
GuidArticle:
type: "string"
Amount:
type: "number"
SalesPriceNetSingle:
type: "string"
SalesPriceGrossSingle:
type: "string"
SalesPriceNetTotal:
type: "string"
SalesPriceGrossTotal:
type: "string"
Designation:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidDocument: "ebb89e89-8d25-809e-7814-c53b686ae164"
Number: 1
Type: "Article"
GuidArticle: "ebb89e89-8d25-809e-7814-c53b686ae164"
Amount: 4
SalesPriceNetSingle: 42.12
SalesPriceGrossSingle: 50.12
SalesPriceNetTotal: 168.48
SalesPriceGrossTotal: 200.48
PostalAddress:
type: "object"
properties:
Salutation:
type: "string"
Name1:
type: "string"
Name2:
type: "string"
Name3:
type: "string"
Street:
type: "string"
Postalcode:
type: "string"
Town:
type: "string"
Township:
type: "string"
GuidAddressState:
type: "string"
example:
Salutation: "Herr"
Name1: "Max Mustermann"
Name2: null
Name3: null
Street: "Musterstra<72>e 123"
Postalcode: "01234"
Town: "Musterhausen"
Township: "Musterviertel"
GuidAddressState: "ebb89e89-8d25-809e-7814-c53b686ae164"
SchedulerAppointment:
type: "object"
required:
- "Guid"
- "Designation"
- "StartMoment"
- "EndMoment"
- "WasCreatedByOnlineScheduler"
properties:
Guid:
type: "string"
Designation:
type: "string"
LicenceTagNumber:
type: "string"
StartMoment:
type: "string"
format: "date-time"
EndMoment:
type: "string"
format: "date-time"
Comment:
type: "string"
WasCreatedByOnlineScheduler:
type: "boolean"
OnlineSchedulerText:
type: "string"
AppointmentMakerEmailAddress:
type: "string"
GuidBranch:
type: "string"
GuidOnlineSchedulerBranch:
type: "string"
GuidCustomerVehicle:
type: "string"
GuidCustomerStorage:
type: "string"
GuidDocument:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Max Müller, A-BC 1234"
LicenceTagNumber: "A-BC 1234"
StartMoment: "2021-02-02T10:36:10.172"
EndMoment: "2021-02-02T10:36:10.172"
Comment: null
WasCreatedByOnlineScheduler: true
OnlineSchedulerText: "Service: Ich möchte einen Termin für eine Einlagerung haben."
AppointmentMakerEmailAddress: "info@prm-ag.de"
GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidOnlineSchedulerBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomerVehicle: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidCustomerStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
securitySchemes:
SessionScheme:
type: http
scheme: bearer
parameters:
_HashValueParameter:
name: "_HashValue"
in: "query"
description: "If you want to process a write operation you shall provide the hashvalue of the current view of the object you want to write to. If someone else has written something before you'll get a 412 response code."
required: true
schema:
type: "string"
default: null
example: "f50df554352ac91635f900026860e3371a71999d"
DmsFilesTypeParameter:
name: "Type"
in: "query"
description: "Filter by type."
required: false
schema:
type: "string"
enum:
- "Directory"
- "File"
example: "File"
GuidPathParameter:
name: "Guid"
in: "path"
description: "The primary identifier of the entry (in the database)."
required: true
schema:
type: "string"
default: null
example: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActiveParameter:
name: "IsActive"
in: "query"
description: "Only active elements shall be returned. If null both will get returned."
required: false
schema:
type: "boolean"
default: null
example: true
LimitParameter:
name: "Limit"
in: "query"
description: "Limits the number of result entries."
required: false
schema:
type: "integer"
default: null
minimum: 1
maximum: 2147483647
example: 20
OffsetParameter:
name: "Offset"
in: "query"
description: "Skip the first number of entries."
required: false
schema:
type: "integer"
default: null
minimum: 0
maximum: 2147483647
example: 0
ResponseResolutionDepthParameter:
name: "ResponseResolutionDepth"
in: "query"
description: "If your response object has a field with GuidSomething, this last object will be resolved. Instead of the field GuidSomething you'll get a json object of type Something with it's content. The depth determines how deep this operation shall be. The deeper, the slower your operation will be in general."
required: false
schema:
type: "integer"
default: 0
minimum: 0
maximum: 3
example: 1
SearchTermParameter:
name: "SearchTerm"
in: "query"
description: "Searches the entries and it's content."
required: false
schema:
type: "string"
default: null
example: "mc*onald"
responses:
SessionOfOnlineUserOrHigherRequired:
description: "You need a session of type OnlineUser or TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
SessionOfTyreProUserOrHigherRequired:
description: "You need a session of type TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
GenericError:
description: "Unexpected error like 4XX or 5XX http errors."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"

View File

@ -1,725 +0,0 @@
openapi: 3.0.0
info:
title: "TyrePro-API, OnlineService"
version: "1"
servers:
- url: "https://musterreifen.com/api"
description: "Demo server"
- url: "https://onlineservices.demo.rz2.prm-ag.de/O6J20ZebmghzkNgrdD759A/api"
description: "Development server"
paths:
/OnlineServiceDomainFooterModules:
get:
tags:
- "OnlineServiceDomainFooterModules"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
- name: "GuidOnlineServiceDomain"
in: "query"
required: false
description: "Parentreference. Required if your session is not TyreProUser or higher."
schema:
type: "string"
default: null
example: "ebb89e89-8d25-809e-7814-c53b686ae164"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/OnlineServiceDomainFooterModule"
401:
$ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServiceDomainFooterModules/{Guid}:
get:
tags:
- "OnlineServiceDomainFooterModules"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/OnlineServiceDomainFooterModule"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServiceDomains:
get:
tags:
- "OnlineServiceDomains"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
- name: "Domain"
in: "query"
description: "When the parameter is not given the results will be filtered by your calling domain."
required: false
schema:
type: "string"
default: null
example: "shop.musterreifen.de"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/OnlineServiceDomain"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServiceDomains/{Guid}:
get:
tags:
- "OnlineServiceDomains"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/OnlineServiceDomain"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServiceDomains/{Guid}/OnlineServiceDomainFooterModules:
get:
tags:
- "OnlineServiceDomains"
- "OnlineServiceDomainFooterModules"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/OnlineServiceDomainFooterModule"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServiceDomains/{Guid}/OnlineServices:
get:
tags:
- "OnlineServiceDomains"
- "OnlineServices"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/OnlineService"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServiceDomains/{Guid}/custommethods/GenerateCssFile:
get:
tags:
- "OnlineServiceDomains"
description: "Generates a CSS-file with the colors as css-variables and delivers the binary file content."
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ContentDispositionParameter"
responses:
200:
description: "successful operation"
content:
text/css:
schema:
type: "string"
format: "binary"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServices:
get:
tags:
- "OnlineServices"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
- name: "GuidOnlineServiceDomain"
in: "query"
required: false
description: "Parentreference. Required if your session is not TyreProUser or higher."
schema:
type: "string"
default: null
example: "ebb89e89-8d25-809e-7814-c53b686ae164"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/OnlineService"
401:
$ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServices/{Guid}:
get:
tags:
- "OnlineServices"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/OnlineService"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineServices/{Guid}/OnlineSchedulerServices:
get:
tags:
- "OnlineServices"
- "OnlineSchedulerServices"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/ResponseResolutionDepthParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/OnlineSchedulerService"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineUsers:
get:
tags:
- "OnlineUsers"
parameters:
- $ref: "#/components/parameters/OffsetParameter"
- $ref: "#/components/parameters/LimitParameter"
- $ref: "#/components/parameters/SearchTermParameter"
- $ref: "#/components/parameters/UsernameParameter"
responses:
200:
description: "successful operation"
headers:
TotalNumberOfEntries:
schema:
type: integer
description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/OnlineUser"
401:
$ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineUsers/{Guid}:
get:
tags:
- "OnlineUsers"
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
$ref: "#/components/schemas/OnlineUser"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/OnlineUsers/{Guid}/custommethods/SetPassword:
post:
tags:
- "OnlineUsers"
description: "Sets a (new) password."
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/PasswordHashValueParameter"
responses:
200:
description: "successful operation"
401:
$ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
components:
schemas:
GenericError:
type: "object"
required:
- "Message"
- "Details"
properties:
Message:
type: "string"
Details:
type: "string"
example:
Message: "Ihr Anwender wurde nicht gefunden."
Details: "Progress.Lang.AppError\n Ihr Anwender wurde nicht gefunden.\nat sourcecode.line 123"
_HashValue:
type: "string"
description: "HashValue of the object which you'll need to process write-operations."
example: "f50df554352ac91635f900026860e3371a71999d"
OnlineSchedulerService:
type: "object"
required:
- "Guid"
- "GuidOnlineService"
- "Designation"
- "IsDefault"
- "CalendarType"
- "UsersHaveToEnterALicenceTag"
- "UsersMayEnterANewLicenceTag"
- "IsConnectedWithATyreStorage"
- "DeadlineTimeInSecondsSinceMidnight"
properties:
Guid:
type: "string"
GuidOnlineService:
type: "string"
Designation:
type: "string"
IsVisible:
type: "boolean"
IsDefault:
type: "boolean"
CalendarType:
type: "string"
enum:
- "Date"
- "DateAndTime"
UsersHaveToEnterALicenceTag:
type: "boolean"
UsersMayEnterANewLicenceTag:
type: "boolean"
IsConnectedWithATyreStorage:
type: "boolean"
DeadlineTimeInSecondsSinceMidnight:
type: "integer"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidOnlineService: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Termin für eine Einlagerung."
IsVisible: true
IsDefault: true
CalendarType: "Date"
UsersHaveToEnterALicenceTag: true
UsersMayEnterANewLicenceTag: false
IsConnectedWithATyreStorage: true
DeadlineTimeInSecondsSinceMidnight: 43200
OnlineServiceDomainFooterModule:
type: "object"
required:
- "Guid"
- "Designation"
- "IsLegalNotice"
- "ContentType"
- "Content"
properties:
Guid:
type: "string"
Designation:
type: "string"
IsLegalNotice:
type: "boolean"
ContentType:
type: "string"
enum:
- "Link"
- "Text"
Content:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "Facebook"
ContentType: "Link"
Content: "https://example.domain/foo?bar=true"
OnlineServiceDomain:
type: "object"
required:
- "Guid"
- "Domain"
properties:
Guid:
type: "string"
CompanyName:
type: "string"
Domain:
type: "string"
GuidDbBlobHeaderLogo:
type: "string"
GuidDbBlobFooterLogo:
type: "string"
BodyBackgroundColor:
type: "string"
FormBackgroundColor:
type: "string"
PrimaryColor:
type: "string"
SecondaryColor:
type: "string"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
Domain: "musterreifen.com"
GuidDbBlobHeaderLogo: "9acea90b-f0d9-2d95-7814-c53b28d87980"
GuidDbBlobFooterLogo: null
BodyBackgroundColor: null
FormBackgroundColor: "rgb(255,0,0)"
PrimaryColor: null
SecondaryColor: null
OnlineService:
type: "object"
required:
- "Guid"
- "GuidOnlineServiceDomain"
- "Designation"
- "IsVisible"
- "IsDefault"
- "Type"
properties:
Guid:
type: "string"
GuidOnlineServiceDomain:
type: "string"
GuidOnlineServiceOfScheduler:
type: "string"
Designation:
type: "string"
IsVisible:
type: "boolean"
IsDefault:
type: "boolean"
Type:
type: "string"
enum:
- "CustomerInformation"
- "Scheduler"
- "Shop"
UrlExtension:
type: "string"
NewUsersMayRegister:
type: "boolean"
OneClickPurchaseIsAllowed:
type: "boolean"
TyreProArticleColorsShallBeUsed:
type: "boolean"
DefaultArticleAmount:
type: "number"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
GuidOnlineServiceDomain: "ebb89e89-8d25-809e-7814-c53b686ae164"
Designation: "B2B-Shop"
IsVisible: true
IsDefault: true
Type: "Shop"
UrlExtension: "Shop"
NewUsersMayRegister: false
OneClickPurchaseIsAllowed: true
TyreProArticleColorsShallBeUsed: true
DefaultArticleAmount: 4
OnlineUser:
type: "object"
required:
- "Guid"
- "Username"
- "IsActive"
- "GuidCustomer"
- "MayChangeTheMainAddress"
- "FullTaxPercentage"
- "ReducedTaxPercentage"
properties:
Guid:
type: "string"
Username:
type: "string"
IsActive:
type: "boolean"
GuidCustomer:
type: "string"
MayChangeTheMainAddress:
type: "boolean"
FullTaxPercentage:
type: "number"
ReducedTaxPercentage:
type: "number"
_HashValue:
$ref: "#/components/schemas/_HashValue"
example:
Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
Username: "Mustermann"
IsActive: true
GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
MayChangeTheMainAddress: true
FullTaxPercentage: 19
ReducedTaxPercentage: 7
securitySchemes:
SessionScheme:
type: http
scheme: bearer
parameters:
_HashValueParameter:
name: "_HashValue"
in: "query"
description: "If you want to process a write operation you shall provide the hashvalue of the current view of the object you want to write to. If someone else has written something before you'll get a 412 response code."
required: true
schema:
type: "string"
default: null
example: "f50df554352ac91635f900026860e3371a71999d"
ContentDispositionParameter:
name: "ContentDisposition"
in: "query"
description: "How the file is deliverd. Inline is inside the same browser tab i.e.. This parameter takes only effect if parameter BinaryResponse=true."
required: false
schema:
type: "string"
enum:
- "Inline"
- "Attachment"
default: "Inline"
example: "Inline"
GuidPathParameter:
name: "Guid"
in: "path"
description: "The primary identifier of the entry (in the database)."
required: true
schema:
type: "string"
default: null
example: "ebb89e89-8d25-809e-7814-c53b686ae164"
IsActiveParameter:
name: "IsActive"
in: "query"
description: "Only active elements shall be returned. If null both will get returned."
required: false
schema:
type: "boolean"
default: null
example: true
LimitParameter:
name: "Limit"
in: "query"
description: "Limits the number of result entries."
required: false
schema:
type: "integer"
default: null
minimum: 1
maximum: 2147483647
example: 20
OffsetParameter:
name: "Offset"
in: "query"
description: "Skip the first number of entries."
required: false
schema:
type: "integer"
default: null
minimum: 0
maximum: 2147483647
example: 0
PasswordHashValueParameter:
name: "PasswordHashValue"
in: "query"
description: "The SHA-1-value of the password. The hash should be formatted as a hex-encoded string."
required: false
schema:
type: "string"
default: null
example: "e099b5c2aef873f5e2612da35056bd2287a3c404"
ResponseResolutionDepthParameter:
name: "ResponseResolutionDepth"
in: "query"
description: "If your response object has a field with GuidSomething, this last object will be resolved. Instead of the field GuidSomething you'll get a json object of type Something with it's content. The depth determines how deep this operation shall be. The deeper, the slower your operation will be in general."
required: false
schema:
type: "integer"
default: 0
minimum: 0
maximum: 3
example: 1
SearchTermParameter:
name: "SearchTerm"
in: "query"
description: "Searches the entries and it's content."
required: false
schema:
type: "string"
default: null
example: "mc*onald"
UsernameParameter:
name: "Username"
in: "query"
required: false
schema:
type: "string"
default: null
responses:
SessionOfOnlineUserOrHigherRequired:
description: "You need a session of type OnlineUser or TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
SessionOfTyreProUserOrHigherRequired:
description: "You need a session of type TyreProUser."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"
GenericError:
description: "Unexpected error like 4XX or 5XX http errors."
content:
application/json:
schema:
$ref: "#/components/schemas/GenericError"

File diff suppressed because it is too large Load Diff

3
src/v1/README.md Normal file
View File

@ -0,0 +1,3 @@
Currently in sunset, which means that there will not be future development on it.
*Please look forward to v2.*

4856
src/v1/openapi.yaml Normal file

File diff suppressed because it is too large Load Diff

97
src/v2/README.md Normal file
View File

@ -0,0 +1,97 @@
***Currently under heavy development***
# Overview
Our API follows the REST-API-Principles.
## URI structure / Products
We will have a bunch of use cases. Some API consumers want to develop
- an appointment making service
- a shop integration with prices, stocks and more
- create and update orders
- update vehicle information
- many more cases...
Because of the variety of requirements, we offer different API products. The naming results to "/api/<product>/...". This allows us to provide different views of the same resource depending on your use case and permissions.
## Domain
We as [PRM Software AG](https://prm-ag.de) offer you this API for our customers and act in that case as a service provider. For requesting the data of a trader, it is neccessary to get the permissions of each trader.
Each trader has it's own domain or a generated one by us. The base-URI could be:
- https://example-store.de/
- https://onlineservices.prod.rz2.prm-ag.de/asd8s76df9/
## Methods and resources
With each call you'll [interact with resources](https://restfulapi.net/http-methods/).
- GET /api/core/Users -> Retrieve all customers
- GET /api/core/Users/1 -> Retrieve data of customer 1
- GET /api/core/Users/1/Permissions -> Retrieve all permissions of customer 1
- POST /api/core/Users -> Create a customer
- PATCH /api/core/Users/1 -> Modify some data of customer 1
- DELETE /api/core/Users/1 -> Delete customer 1
To apply non-CRUD-methods to a resource, we allways use HTTP-POST-methods.
- POST /api/core/Users/1/Ban -> Ban customer 1
- POST /api/core/Users/1/NotifyGtcViolance -> Notifies customer 1 for a violation of the terms and conditions
*Yeah. In an ideal world we would use those verbs as HTTP-methods as well, but not all clients and servers support that functionality. And it's not common in the dev-society currently, therefore, we think, most developers would be confused.*
**The character casing of resource names is significant!**
## Authorization
### Static access tokens
Within our ERP-system TyrePro, the trader is able to configurate static access tokens. **Use static access tokens only, if you really trust the environment, where they are stored.**
### Access tokens by authentication
In our authentication.yaml, you'll find endpoints to authenticate with some users credentials.
### Passing the parameters
The recommended way of passing the access token is within the HTTP-Header 'Authorization: Bearer <token>'. For use cases of temporary sharing or simplified backend to backend calls, you could also pass the access token as query parameter '?AuthorizationToken=<token>'. Please be aware, that in a lot of libraries the request URI (including queryparameters) may get logged.
## Errors
## Rate Limiting
## Pagination
## Sorting
## Response Resolution
## Caching
## Confirmation codes
some request require an explicit confirmation. There the server creates a confirmation code and a message and the client has to send the request again with the confirmation code. the code is temporary stored at server side.
## Events
subscribe to events and get a post request on your side
## Performance
response header notice
# Open-API documentation
Because of all those general options, we use a minimal documentation style of our Open-API-yaml-files. Example: Even when you will not find the pagination-parameters in the yaml-file, you can use them.
The usage of the minimal style will make it easier for you to see what exactly is part of the implementation and what is general. In a scenario of a full documentation the actual implementation details may be skipped in the complexity of general parameters.
# A typical request flow
1. Request entering
2. URI normalization
3. Ressource identification
4. Authorization check
5. Rate limit check
6. Request processing
7. Cache postprocessing

View File

@ -8,6 +8,10 @@ servers:
- url: "https://onlineservices.demo.rz2.prm-ag.de/O6J20ZebmghzkNgrdD759A/api"
description: "Development server"
paths:
/AddressStates:
get:
tags:

1154
src/v2/shop.yaml Normal file

File diff suppressed because it is too large Load Diff

204
src/v2/todo.yaml Normal file
View File

@ -0,0 +1,204 @@
/MaterialGroups:
get:
tags:
- "Filters"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/MaterialGroup"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/MaterialSubGroups:
get:
tags:
- "Filters"
responses:
200:
description: "successful operation"
content:
application/json:
schema:
type: "array"
items:
$ref: "#/components/schemas/MaterialSubGroup"
default:
$ref: "#/components/responses/GenericError"
security:
- SessionScheme: []
/CalculationProfiles:
get:
post:
delete:
patch:
/Calculations:
get:
post:
delete:
patch:
/CalculationGroups:
get:
post:
delete:
patch:
- Teileart und Waren~ als Array übergeben
- SequenceNumber nach außen liefern. Patch sollte im Idealfall selbst dafür sorgen, dass die neu gegebene Nummer dann gültig ist - die Konflikte soll der Server lösen.
/CalculationSurcharges:
get:
post:
delete:
patch:
/Configs:
get:
patch:
> [{
"DefaultAmount": 4,
"OneClickPurchase": false,
"FullTaxPercentage": 19,
"ReducedTaxPercentage": 7,
"OfferLayout":
{
"GuidDbBlobBackground": "...",
"TopOffsetInPixel": 234,
"BottomOffsetInPixel": 234
}
}]
/OfferArticles:
get:
post:
delete:
patch:
/Addresses:
get:
post:
delete:
patch:
/ArticleInformations:
get:
/Vehicles:
get:
/Tubes:
get:
- Unsicher, ob das so bleibt
/Carts:
get:
post:
delete:
patch:
> [{
Comment
}]
/CartSets:
get:
post:
delete:
patch:
> [{
Comment,
Articles: [{
Guid
GuidCartSet
GuidArticle
Amount
Price
...
},
{
Guid
GuidCartSet
GuidArticle
Amount
Price
...
}]
}]
/DeliveryTypes:
get:
/PaymentTypes:
get:
/Carts/{Guid}/Order:
post:
- GuidDeliveryType
- GuidPaymentType
- // Zusatzinformationen Payment
- Comment
...
> Document<Order>
/Documents:
- Alle anderen Belege
/Downloads:
get:
/Campaigns:
get:
/Areas:
get:
- Dynamisch Preisänderungen und co anzeigen
VehicleType:
> Designation, "ComfortSearchSet": [{"Designation": "Durchmesser", "Type": "Diameters"}, {"Designation": "Lochzahl", "Type": "HoleCircles"}]
/Articles:
get:
- Alle Suchparameter, wie Suchbegriff, Komfortsuchefelder und co
- Alle Felder, die der Kunde an dieser Stelle nicht sehen darf, werden mit null geliefert. Sonst ist das Antwortschema statisch und vollständig.
> [{
"Designation": null,
// Alle anderen Spalten,
"GuidColumnConfig": "82397489235",
...
}]
/Filters:
get:
- Liefert alle Metainformationen aus
- Alle Suchparameter, wie Suchbegriff, Komfortsuchefelder und co
> [{
"Designation": "Fahrzeugauswahl",
"Type": "Vehicle", // [Vehicle, MaterialType, Diameter...]
"Selection": [
{
"Designation": "PKW",
"NumberOfResults": 123,
"ParameterKey": "VehicleType",
"ParameterValue": "832745983475895"
},
{
"Designation": "Motorrad",
"NumberOfResults": 12,
"ParameterKey": "VehicleType",
"ParameterValue": "83724534899"
}
]
}]
/ColumnConfigs:
get:
- Ein Set aus den Informationen der Detail- und Bestandsspaltenkonfigurationen.

1631
src/v2/tpms.yaml Normal file

File diff suppressed because it is too large Load Diff