slogan3

Ontwerp een OpenAPI-specificatie voor API Gedistribueerde Transacties en Consistentiebeheer

description

Met deze prompt kun je een OpenAPI-specificatie ontwerpen die complexe gedistribueerde transacties en consistente data-uitwisseling ondersteunt. Dit voorkomt integratiefouten, verbetert betrouwbaarheid en maakt je API robuuster dan standaard specificaties. Het is uniek doordat het zich richt op transactionele consistentie, iets wat vaak ontbreekt in API-documentatie.

prompt

Help me een OpenAPI-specificatie te maken die het beheer van gedistribueerde transacties en consistentie in mijn API documenteert. API Naam: <voer de naam van mijn API in> Type Transacties (bijv. two-phase commit, saga pattern): <beschrijf het transactiebeheer> Consistentieregels (bijv. eventual consistency, stron ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
openapi: 3.1.0 info: title: ShopAPI versie: 1.0.0 beschrijving: > API voor het beheer van bestellingen met ondersteuning voor gedistribueerde transacties (two-phase commit) en sterke consistentie. Gebruik API-sleutel in de header voor authenticatie. servers: - url: https://api.shopvoorbeeld.nl beschrijving: Productieomgeving components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Sleutel schemas: Order: type: object properties: id: type: string description: Unieke identifier voor de bestelling item: type: string hoeveelheid: type: integer status: type: string description: Status van de bestelling required: - id - item - hoeveelheid - status CreateOrderRequest: type: object properties: item: type: string hoeveelheid: type: integer required: - item - hoeveelheid OrderResponse: allOf: - $ref: '#/components/schemas/Order' - description: > Bevat de volledige bestelling gegevens inclusief ID en status. security: - ApiKeyAuth: [] tags: - naam: Bestellingen beschrijving: Beheer van bestellingen met gedistribueerde transacties en consistentie x-transactie: type: two-phase commit beschrijving: > Deze API ondersteunt two-phase commit voor gedistribueerde transacties, waardoor de consistentie over meerdere systemen gegarandeerd wordt tijdens ordercreatie en -updates. consistentie: type: strong consistency beschrijving: > De API garandeert sterke consistentie, waardoor elke read altijd de meest recente write reflecteert. Dit wordt bereikt door synchronisatie tijdens transacties. paths: /orders: post: summary: Creëer een nieuwe bestelling tags: - Bestellingen security: - ApiKeyAuth: [] requestBody: description: Details van de nieuwe bestelling required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrderRequest' responses: '201': description: Order succesvol aangemaakt content: application/json: schema: $ref: '#/components/schemas/OrderResponse' '400': description: Ongeldige aanvraag '401': description: Niet geautoriseerd x-transactie: initiatie: > Transactie wordt gestart met two-phase commit protocol. fase1: Prepare fase2: Commit of Rollback /orders/{id}: get: summary: Haal details van een bestelling op tags: - Bestellingen security: - ApiKeyAuth: [] parameters: - in: path name: id schema: type: string required: true description: ID van de bestelling responses: '200': description: Details van de bestelling content: application/json: schema: $ref: '#/components/schemas/Order' '404': description: Bestelling niet gevonden '401': description: Niet geautoriseerd # Opmerking: # - De specificatie benadrukt dat transacties via two-phase commit worden beheerd. # - De API garandeert sterke consistentie voor alle lees- en schrijfoperaties. # - Authenticatie gebeurt via een API-sleutel in de header. # - Deze specificatie kan verder uitgebreid worden met meer endpoints en details indien nodig.
provider: deepseek
model: deepseek-chat
Zeker, hier is een OpenAPI-specificatie in YAML voor je ShopAPI die two-phase commit transacties en strong consistency documenteert: ```yaml openapi: 3.0.0 info: title: ShopAPI description: | API voor het beheren van winkelbestellingen met gedistribueerde transacties. **Transactiebeheer:** - Two-Phase Commit protocol voor gedistribueerde transacties - Sterke consistentie (strong consistency) gegarandeerd voor alle operaties **Authenticatie:** API-sleutel vereist in de X-API-Key header version: 1.0.0 contact: name: API Support email: support@shopapi.com servers: - url: https://api.shop.com/v1 description: Productieserver paths: /orders: post: summary: Maak een nieuwe bestelling aan description: | Creëert een nieuwe bestelling met two-phase commit transactiebeheer. **Transactiestroom:** 1. Prepare fase - Valideer en reserveer resources 2. Commit fase - Bevestig en persisteer de transactie **Consistentie:** Sterke consistentie gegarandeerd - alle wijzigingen zijn direct zichtbaar operationId: createOrder security: - apiKey: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrderRequest' responses: '201': description: | Bestelling succesvol aangemaakt met two-phase commit. Transactie is atomisch uitgevoerd met sterke consistentie. content: application/json: schema: $ref: '#/components/schemas/OrderResponse' '400': description: Ongeldig verzoek of transactie validatie mislukt '401': description: Ongeldige of ontbrekende API-sleutel '409': description: | Transactie conflict - two-phase commit prepare fase mislukt vanwege inconsistentie in gedistribueerde systemen '500': description: | Transactie mislukt - two-phase commit kon niet worden voltooid vanwege systeemfouten /orders/{id}: get: summary: Haal bestellingdetails op description: | Haalt gedetailleerde informatie over een specifieke bestelling op. **Consistentie:** Sterke consistentie gegarandeerd - retourneert altijd de meest recente staat operationId: getOrder security: - apiKey: [] parameters: - name: id in: path required: true schema: type: string format: uuid description: Unieke identifier van de bestelling responses: '200': description: | Bestellingdetails succesvol opgehaald. Sterke consistentie gegarandeerd - data is direct consistent. content: application/json: schema: $ref: '#/components/schemas/OrderResponse' '401': description: Ongeldige of ontbrekende API-sleutel '404': description: Bestelling niet gevonden components: schemas: OrderRequest: type: object required: - customerId - items properties: customerId: type: string format: uuid description: Unieke identifier van de klant items: type: array items: $ref: '#/components/schemas/OrderItem' shippingAddress: $ref: '#/components/schemas/Address' OrderResponse: type: object properties: id: type: string format: uuid description: Unieke identifier van de bestelling customerId: type: string format: uuid status: type: string enum: [pending, confirmed, shipped, delivered, cancelled] description: | Status van de bestelling met sterke consistentie - wijzigingen zijn direct zichtbaar in alle systemen items: type: array items: $ref: '#/components/schemas/OrderItem' totalAmount: type: number format: float createdAt: type: string format: date-time updatedAt: type: string format: date-time OrderItem: type: object required: - productId - quantity properties: productId: type: string format: uuid quantity: type: integer minimum: 1 price: type: number format: float Address: type: object properties: street: type: string city: type: string postalCode: type: string country: type: string securitySchemes: apiKey: type: apiKey name: X-API-Key in: header description: API-sleutel voor authenticatie responses: TransactionError: description: | Two-phase commit transactie mislukt. Sterke consistentie kon niet worden gegarandeerd. content: application/json: schema: type: object properties: error: type: string transactionId: type: string phase: type: string enum: [prepare, commit] details: type: string tags: - name: Orders description: | Endpoints voor bestellingbeheer met two-phase commit transacties en sterke consistentie garanties ``` Deze specificatie documenteert duidelijk: - **Two-phase commit** transactiebeheer in de beschrijvingen en response codes - **Sterke consistentie** garanties bij alle endpoints - **API-sleutel authenticatie** via header - Gedetailleerde foutafhandeling voor transactiegerelateerde scenario's - Duidelijke schemas voor request/response structuren