API-documentatie — Swagger
Finch heeft een ingebouwde OpenAPI/Swagger-documentatiegenerator. Annoteer eindpunten direct in Dart-code.
Installatie
1. Maak een ApiController aan
import 'package:finch/finch_route.dart';
class UserApiController extends ApiController {
@override
String get apiTitle => 'Gebruikers-API';
@override
String get apiVersion => '1.0.0';
@ApiDoc(
summary: 'Alle gebruikers ophalen',
description: 'Geeft een lijst van alle actieve gebruikers',
parameters: [
ApiParameter(name: 'page', in_: 'query', type: 'integer'),
ApiParameter(name: 'limit', in_: 'query', type: 'integer'),
],
responses: [
ApiResponse(statusCode: 200, description: 'Geslaagd'),
ApiResponse(statusCode: 401, description: 'Niet geauthenticeerd'),
],
)
Future<String> getUsers() async {
// ...
return rq.renderData(data: users);
}
}
2. Routes registreren
router.get('/api/users', UserApiController().getUsers);
3. ApiDoc koppelen
FinchConfigs(
enableApiDoc: true,
apiDocPath: '/api/docs',
)
De documentatie-UI is beschikbaar op /api/docs.
ApiParameter
| Veld | Type | Beschrijving |
|---|---|---|
name |
String |
Parameternaam |
in_ |
String |
'query', 'path', 'header', 'body' |
type |
String |
Gegevenstype (bijv. 'string', 'integer') |
required |
bool |
Of het verplicht is (standaard: false) |
description |
String? |
Optionele beschrijving |
ApiResponse
ApiResponse(
statusCode: 201,
description: 'Gebruiker aangemaakt',
schema: {'type': 'object', 'properties': {'id': {'type': 'integer'}}},
)
Voorgedefinieerde snelkoppelingen
Finch heeft verkorte annotaties:
@ApiGet(summary: 'Item ophalen')
@ApiPost(summary: 'Item aanmaken')
@ApiPut(summary: 'Item bijwerken')
@ApiDelete(summary: 'Item verwijderen')