Serinus Banner

Serinus Swagger

A plugin to add OpenAPI Specification in your Serinus applications 🐤.

Installation

dart pub add serinus_swagger

Usage

void main(List<String> args) async {
  final document = DocumentSpecification(
      title: 'Serinus Test Swagger',
      version: '1.0',
      description: 'API documentation for the Serinus project',
      license: LicenseObject(
        name: 'MIT',
        url: 'https://opensource.org/licenses/MIT',
      ),
      contact:
          ContactObject(name: 'Serinus', url: 'https://serinus.dev', email: ''))
    ..addBasicAuth();
  final app = await serinus.createApplication(
    entrypoint: AppModule(),
  );
  final swagger = await SwaggerModule.create(app, document, components: [
    Component<SchemaObject>(
        name: 'User',
        value: SchemaObject(type: SchemaType.object, value: {
          'name': SchemaObject(),
          'age': SchemaObject(type: SchemaType.integer),
          'email': SchemaObject(),
        })),
    Component<ResponseObject>(
        name: 'SuccessResponse',
        value: ResponseObject(description: 'Success response', content: [
          MediaObject(
              schema: SchemaObject(
                  type: SchemaType.text,
                  example: SchemaValue<String>(value: 'Hello world')),
              encoding: ContentType.text)
        ])),
    Component<ParameterObject>(
        name: 'NameParam',
        value: ParameterObject(
          name: 'name',
          in_: SpecParameterType.query,
          required: false,
        )),
    Component<RequestBody>(
        name: 'DataBody',
        value: RequestBody(
          name: 'data',
          value: {
            'name': MediaObject(
                schema: SchemaObject(
                    type: SchemaType.text,
                    example: SchemaValue<String>(value: 'John Doe')),
                encoding: ContentType.json),
          },
          required: true,
        )),
  ]);
  await swagger.setup(
    '/api',
  );
  await app.serve();
}

Libraries

serinus_swagger