Spring Framework Project Generation API

Generate new Spring Boot project archives

OpenAPI Specification

spring-project-generation-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spring Boot Actuator Beans Project Generation API
  description: The Spring Boot Actuator API provides production-ready endpoints for monitoring and managing Spring Boot applications. It exposes health checks, metrics, environment information, configuration properties, thread dumps, HTTP traces, application info, and shutdown capabilities via RESTful endpoints. The Actuator supports customizable security, endpoint exposure controls, and integration with monitoring systems like Prometheus, Datadog, and CloudWatch. Used by operators and SREs to observe and manage deployed Spring Boot services.
  version: 3.x
  contact:
    name: Spring Team
    url: https://spring.io/support
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8080/actuator
  description: Default Local Spring Boot Actuator Endpoint
security:
- basicAuth: []
tags:
- name: Project Generation
  description: Generate new Spring Boot project archives
paths:
  /starter.zip:
    get:
      operationId: generateProjectZip
      summary: Generate Project ZIP
      description: Generates a new Spring Boot project and returns it as a ZIP archive. Specify the project group, artifact, dependencies, Java version, Spring Boot version, and other options via query parameters.
      tags:
      - Project Generation
      parameters:
      - $ref: '#/components/parameters/type'
      - $ref: '#/components/parameters/language'
      - $ref: '#/components/parameters/bootVersion'
      - $ref: '#/components/parameters/baseDir'
      - $ref: '#/components/parameters/groupId'
      - $ref: '#/components/parameters/artifactId'
      - $ref: '#/components/parameters/name'
      - $ref: '#/components/parameters/description'
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/packaging'
      - $ref: '#/components/parameters/javaVersion'
      - $ref: '#/components/parameters/dependencies'
      responses:
        '200':
          description: ZIP archive of the generated project
          content:
            application/zip:
              schema:
                type: string
                format: binary
  /starter.tgz:
    get:
      operationId: generateProjectTgz
      summary: Generate Project TGZ
      description: Generates a new Spring Boot project and returns it as a tar.gz archive. Accepts the same query parameters as the ZIP endpoint.
      tags:
      - Project Generation
      parameters:
      - $ref: '#/components/parameters/type'
      - $ref: '#/components/parameters/language'
      - $ref: '#/components/parameters/bootVersion'
      - $ref: '#/components/parameters/baseDir'
      - $ref: '#/components/parameters/groupId'
      - $ref: '#/components/parameters/artifactId'
      - $ref: '#/components/parameters/name'
      - $ref: '#/components/parameters/description'
      - $ref: '#/components/parameters/packageName'
      - $ref: '#/components/parameters/packaging'
      - $ref: '#/components/parameters/javaVersion'
      - $ref: '#/components/parameters/dependencies'
      responses:
        '200':
          description: TGZ archive of the generated project
          content:
            application/x-tar:
              schema:
                type: string
                format: binary
components:
  parameters:
    baseDir:
      name: baseDir
      in: query
      required: false
      description: Base directory for the generated project archive
      schema:
        type: string
      example: demo
    language:
      name: language
      in: query
      required: false
      description: Programming language
      schema:
        type: string
        enum:
        - java
        - kotlin
        - groovy
        default: java
    bootVersion:
      name: bootVersion
      in: query
      required: false
      description: Spring Boot version
      schema:
        type: string
      example: 3.4.5
    packageName:
      name: packageName
      in: query
      required: false
      description: Root Java package name
      schema:
        type: string
        default: com.example.demo
    type:
      name: type
      in: query
      required: false
      description: Project type (build system)
      schema:
        type: string
        enum:
        - maven-project
        - gradle-project
        - gradle-project-kotlin
        default: maven-project
    name:
      name: name
      in: query
      required: false
      description: Project name
      schema:
        type: string
        default: demo
    javaVersion:
      name: javaVersion
      in: query
      required: false
      description: Java version
      schema:
        type: string
        enum:
        - '21'
        - '17'
        - '11'
        default: '21'
    description:
      name: description
      in: query
      required: false
      description: Project description
      schema:
        type: string
        default: Demo project for Spring Boot
    groupId:
      name: groupId
      in: query
      required: false
      description: Maven group ID
      schema:
        type: string
        default: com.example
    artifactId:
      name: artifactId
      in: query
      required: false
      description: Maven artifact ID / project name
      schema:
        type: string
        default: demo
    packaging:
      name: packaging
      in: query
      required: false
      description: Packaging type
      schema:
        type: string
        enum:
        - jar
        - war
        default: jar
    dependencies:
      name: dependencies
      in: query
      required: false
      description: Comma-separated list of dependency IDs to include (e.g., web,data-jpa,security,actuator)
      schema:
        type: string
      example: web,data-jpa,security,actuator,lombok
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
externalDocs:
  description: Spring Boot Actuator Reference Documentation
  url: https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html