Hallo iedereen
Ik ben bezig met het ontwikkelen van een API. Nu heb ik niet zo veel ervaring, en probeer ik het zo "juist" mogelijk te doen.
Concreet heb ik nu enkele keuzes gemaakt:
Dit is een POST request, de gebruiker stuurt gebruikersnaam en wachtwoord door.
Nu zijn er volgens mij 3 manieren om dit te doen:
Wat is jullie ervaring?
Ik ben bezig met het ontwikkelen van een API. Nu heb ik niet zo veel ervaring, en probeer ik het zo "juist" mogelijk te doen.
Concreet heb ik nu enkele keuzes gemaakt:
- Ik gebruik een soort van token authenticatie. Eerst moet de gebruiker ergens aanmelden met gebruikersnaam/wachtwoord en die krijgt dan een token terug. Die is tot x aantal minuten na de laatste request geldig
- Ik gebruik zoveel mogelijk zelfstandige naamwoorden bij endpoints, geen werkwoorden
Dit is een POST request, de gebruiker stuurt gebruikersnaam en wachtwoord door.
Nu zijn er volgens mij 3 manieren om dit te doen:
- Gebruiker geeft gebruikersnaam en wachtwoord door in JSON formaat in de body
- Gebruiker geeft de gebruikersnaam en wachtwoord door in de query parameters
- Gebruiker geeft de gebruikersnaam en wachtwoord door in de Authorization header, Basic style
- Het is een POST, het moet in de body. Ok, maar waarom dan geen Bearer tokens etc in de body? Die worden altijd in de headers meegegeven, zelden in de JSON body
- Query parameters worden vaak gebruikt bij GET requests, waarom dan niet in de login endpoint? Er wordt strikt genomen geen nieuwe data aangemaakt (zoals wel het geval is bij bvb een POST naar de /users endpoint)
- In alle andere requests stuur ik een token mee in de authorization header, en dat doen veel API's. Maar vanaf iemand het woord Basic Authorization header zegt lijkt dit een groot taboe? Deze optie lijkt mij het meest HTTP correct, toch ben ik dit nog nooit tegengekomen 'in het wild'
Wat is jullie ervaring?