Compare commits

...

38 Commits

Author SHA1 Message Date
eb8630ff24 New Endpoint /Filters2, to make implementation easier 2026-04-09 14:34:58 +02:00
2960d1bd36 Each branch has now hints 2026-02-24 09:41:23 +01:00
6eda09efbe More fields and some bugfixes 2026-01-30 07:45:25 +01:00
dc1751b852 Update README.md 2026-01-30 07:44:50 +01:00
760da37fe3 Methods to search the exact predecessor and successor 2026-01-30 07:44:48 +01:00
adb589ef49 New fields for redirecting to a customer url 2025-10-29 08:42:56 +01:00
fbcb1ff6bb Filters extended for PairSearch 2025-10-20 09:08:40 +02:00
68eca53428 Added Motorcycle-Data 2025-10-17 09:41:45 +02:00
694582091b Typing error 2025-10-16 15:16:36 +02:00
254d3b09ae Search by motorcycles 2025-10-16 14:57:10 +02:00
1c7255fa72 Abfrage von Zuhebörteilen, wie z.B. Schläuchen 2025-10-16 11:33:09 +02:00
574b8caf49 Reorganization for better understanding 2025-10-16 10:14:28 +02:00
dacc6cade4 Pair- or Couplesearch implementation
For different dimensions of front and rear axle
2025-10-16 09:25:45 +02:00
6d93e58c98 New Endpoint for StockDetails of an article
And some more descriptions for stock coloumns. The clients are using often abbreviations
2025-10-15 11:17:18 +02:00
1edeb5178d Raw ProgramIdentifier 2025-10-07 09:28:58 +02:00
1e6a843330 Added designations for any UI, to show 2025-09-12 10:27:34 +02:00
b797105afc Added GuidOnlineService-Parameter 2025-09-04 06:38:13 +02:00
741f6c34dd Providing information about top sold articles 2025-08-21 10:28:38 +02:00
cb2e4d1d60 Added Areas
These are blocks on the page to show custom content. Like typical advertisment-blocks on other websites.
2025-08-21 09:40:40 +02:00
7449bb1a06 Wrong type 2025-08-21 07:44:08 +02:00
791d46ff6b ShopArticleInformation added. I.e. photos and marketing stuff 2025-08-21 07:40:44 +02:00
5b9a836c65 V10 - rework of Blob-Handling 2025-08-20 10:33:58 +02:00
cec3fa68ad The updated document gets returned 2025-08-20 10:30:59 +02:00
00243eb3b5 Small enhancements due to requests 2025-08-05 14:23:49 +02:00
8cd8199417 New fields for article references and the function to rearrange the customer storage 2025-06-19 14:05:05 +02:00
738aaa0a6d Amount in cart is now a complex object 2025-06-19 13:38:08 +02:00
094262e414 Naming in Browsers is stupid.
Yeah :/
2024-10-01 12:00:06 +02:00
5bc944a908 Some moments has been missing 2024-09-03 08:06:37 +02:00
8b6aa36d36 Version 8 2024-09-03 07:59:09 +02:00
a5aaa63f8a Major changes in all endpoints and the sheme behind. 2024-08-26 15:57:04 +02:00
a49185ea21 Refactoring a little bit 2024-08-23 15:12:24 +02:00
41ef94f527 Implementation of CalculationProfiles 2024-08-21 20:09:51 +02:00
78ff9504f6 Update to V5. Stocks and Prices will be delivered now. 2024-07-26 17:45:41 +02:00
b4b5c587fa Update of Todos 2024-07-18 09:50:51 +02:00
0bbb294b64 Mainfunctions for the shop 2024-07-15 14:41:41 +02:00
8954cbd05f More endpoints integrated 2024-07-15 11:44:02 +02:00
ad34e634ca Version 4 with more endpoints 2024-07-12 17:06:10 +02:00
3360b4c652 Renaming 2024-07-05 09:51:34 +02:00
5 changed files with 3146 additions and 842 deletions

View File

@@ -19,6 +19,7 @@ https://www.astera.com/de/type/blog/api-design-best-practices
https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/ 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://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 https://www.akamai.com/blog/security/rest-api-security-best-practices
https://jakarta.ee/specifications/data/1.0/
# Examples # Examples
@@ -26,3 +27,4 @@ https://docs.hetzner.cloud/
https://opensource.zalando.com/restful-api-guidelines https://opensource.zalando.com/restful-api-guidelines
https://kubernetes.io/docs/reference/using-api/api-concepts https://kubernetes.io/docs/reference/using-api/api-concepts
https://docs.stripe.com/api/prices https://docs.stripe.com/api/prices
https://developer.clickup.com/docs/authentication

View File

@@ -1287,6 +1287,62 @@ paths:
$ref: "#/components/responses/GenericError" $ref: "#/components/responses/GenericError"
security: security:
- SessionScheme: [] - SessionScheme: []
/Documents/{Guid}/custommethods/AcceptOffer:
post:
tags:
- "Documents"
description: "Accepts an offer. Dependant on the implementation, it could be that the offer is after the operation an order."
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/_HashValueParameter"
- name: "Comment"
in: "query"
required: false
schema:
type: "string"
default: null
example: "Thanks you!"
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}/custommethods/RejectOffer:
post:
tags:
- "Documents"
description: "Rejects an offer. Dependant on the implementation, the offer keeps beeing open for further responses or gets historic."
parameters:
- $ref: "#/components/parameters/GuidPathParameter"
- $ref: "#/components/parameters/_HashValueParameter"
- name: "Comment"
in: "query"
required: false
schema:
type: "string"
default: null
example: "The price is higher than excepted. Can you make another offer?"
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: []
/DocumentPositions: /DocumentPositions:
get: get:
tags: tags:
@@ -4137,6 +4193,7 @@ components:
- "GuidOnlineSchedulerService" - "GuidOnlineSchedulerService"
- "GuidBranch" - "GuidBranch"
- "IsDefault" - "IsDefault"
- "Hints"
properties: properties:
Guid: Guid:
type: "string" type: "string"
@@ -4146,6 +4203,22 @@ components:
type: "string" type: "string"
IsDefault: IsDefault:
type: "string" type: "string"
Hints:
type: "array"
items:
type: "object"
required:
- "AttentionLevel"
- "Hint"
properties:
AttentionLevel:
type: "string"
enum:
- "Low"
- "Mid"
- "High"
Hint:
type: "string"
_HashValue: _HashValue:
$ref: "#/components/schemas/_HashValue" $ref: "#/components/schemas/_HashValue"
example: example:
@@ -4206,6 +4279,7 @@ components:
- "UsersMayEnterANewLicenceTag" - "UsersMayEnterANewLicenceTag"
- "IsConnectedWithATyreStorage" - "IsConnectedWithATyreStorage"
- "DeadlineTimeInSecondsSinceMidnight" - "DeadlineTimeInSecondsSinceMidnight"
- "DeadlineTimeInSecondsSinceMidnight"
properties: properties:
Guid: Guid:
type: "string" type: "string"
@@ -4230,6 +4304,16 @@ components:
type: "boolean" type: "boolean"
DeadlineTimeInSecondsSinceMidnight: DeadlineTimeInSecondsSinceMidnight:
type: "integer" type: "integer"
RedirectUrlType:
type: "string"
enum:
- "None"
- "NewTab"
- "SameTab"
RedirectUrl:
type: "string"
RedirectUrlShallBeShownAsOptionalButton:
type: "boolean"
_HashValue: _HashValue:
$ref: "#/components/schemas/_HashValue" $ref: "#/components/schemas/_HashValue"
example: example:

File diff suppressed because it is too large Load Diff

View File

@@ -1,204 +0,0 @@
/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.

File diff suppressed because it is too large Load Diff