Whorl API

Versie: 0.1
Laatste update: 14 juni 2025
URL: https://staging.api.whorl.app/api


Inhoud

  1. Authenticatie flow
  2. Request headers
  3. Endpoints

1. Authenticatie flow

  1. Haal providers opGET /providers
    Geeft een lijst terug met beschikbare providers. Voor nu alleen Google.
  2. Start OAuthGET /auth?provider=google
    De response van deze call heeft een url key. De gebruiker moet nu geredirect worden naar deze URL.
  3. Gebruiker logt in
    Daarna wordt de gebruiker weer teruggestuurd naar de applicatie met een hash (#) in de URL.
  4. Haal de access_token uit de hash
    En stuur deze mee met de POST /auth call.
  5. Sla token op
    In de response van deze call zit een token. Sla deze op (bijvoorbeeld met localStorage) en gebruik deze token in de Authorization header bij de calls die authenticatie vereisen:

    Authorization: Bearer <token>

2. Request headers

Header Waarde Verplicht
Authorization Bearer <token> Op beschermde endpoints
Content-Type application/json Voor POST/PUT requests
Accept application/json Aanbevolen

3. Endpoints

5.1 GET /

Item Value
Endpoint /
Method GET
Beschrijving Test API status.
Request

5.2 GET /providers

Item Value
Endpoint /providers
Method GET
Beschrijving Haalt een lijst op van beschikbare OAuth providers.
Request

5.3 GET /products

Item Value
Endpoint /products
Method GET
Beschrijving Haalt een lijst op van beschikbare abonnementen.
Request

5.4 GET /auth

Item Value
Endpoint /auth
Method GET
Beschrijving Start authenticatie, haalt redirect URL op.
Request Query parameter provider (string, required)

5.5 POST /auth

Item Value
Endpoint /auth
Method POST
Beschrijving Ruilt access_token om voor JWT token.
Request Header Authorization: Bearer <access_token>

5.6 GET /me

Item Value
Endpoint /me
Method GET
Beschrijving Haal de huidige ingelogde gebruiker op.
Request Header Authorization: Bearer <token>

5.7 GET /documents

Item Value
Endpoint /documents
Method GET
Beschrijving Haalt een lijst op van opgeslagen documenten.
Request Header Authorization: Bearer <token>

5.8 GET /documents/:id

Item Value
Endpoint /documents/:id
Method GET
Beschrijving Haalt een document op.
Request Header Authorization: Bearer <token>

5.9 POST /documents

Item Value
Endpoint /documents
Method GET
Beschrijving Maakt een nieuw document
Request Header Authorization: Bearer <token>, JSON body { "contents": <json> }

5.10 PUT /documents/:id

Item Value
Endpoint /documents/:id
Method PUT
Beschrijving Update een document, opslaan.
Request Header Authorization: Bearer <token>, JSON body { "contents": <json> }

5.11 DELETE /documents/:id

Item Value
Endpoint /documents/:id
Method DELETE
Beschrijving Verwijdert een document.
Request Header Authorization: Bearer <token>

5.12 POST /checkout

Item Value
Endpoint /checkout
Method POST
Beschrijving Start een Stripe checkout voor een abonnement.
Request JSON body { "product": "<product_identifier>" }

5.13 GET /manage

Item Value
Endpoint /manage
Method GET
Beschrijving Geeft een tijdelijke Stripe portal URL terug.
Request