Skip to content

feat: API implementation and Docker artifact publishing#1

Open
davidgamez wants to merge 8 commits into
mainfrom
feat/openapi_schema
Open

feat: API implementation and Docker artifact publishing#1
davidgamez wants to merge 8 commits into
mainfrom
feat/openapi_schema

Conversation

@davidgamez

@davidgamez davidgamez commented Jun 18, 2026

Copy link
Copy Markdown
Member

Description

This PR adds the first stable implementation of the OpenAPI schema. The implementation uses the https://github.com/openapitools/openapi-generator Maven plugin to generate most of the code and interfaces. The core validator functionality is located in the official GTFS validator repository.

Out of scope

  • API Deployment to a MobilityData environment. This will not be residing in the repository. This repository will serve as a generic, simple API interface for the official GTFS validator.
  • API support of unreleased GTFS validator functionality. While we consider this an interesting case, it should be addressed in a follow-up PR; this PR is complete and heavy enough to review.

From our AI friend

This pull request introduces the initial setup for the GTFS Validator API project, providing a production-ready, containerized, and CI-integrated Spring Boot HTTP API for the MobilityData Canonical GTFS Schedule Validator. The changes establish the build system, code formatting, Dockerization, continuous integration workflows, and detailed documentation, as well as the application entry point.

The most important changes are:

Build System and Dependency Management

  • Added a comprehensive pom.xml configuring the project as a Spring Boot application, managing dependencies (including the validator core and patched transitive dependencies), plugins for OpenAPI code generation, code formatting (Spotless with google-java-format), and resource handling. The build also integrates the OpenAPI spec and sets up code style enforcement.

Dockerization

  • Introduced a multi-stage Dockerfile to build and package the application as a minimal, production-ready container image, running as a non-root user and exposing configuration via JAVA_OPTS.
  • Added a .dockerignore file to exclude unnecessary files and directories from Docker build context, improving build efficiency and security.

Continuous Integration

  • Added GitHub Actions workflow .github/workflows/build.yml for building, testing, and enforcing code style on every push, pull request, or manual trigger.
  • Added .github/workflows/docker.yml workflow to build and publish multi-arch Docker images to GitHub Container Registry on pushes, tags, releases, and pull requests.

OpenAPI Code Generation

  • Added .openapi-generator-ignore to prevent overwriting custom source files during OpenAPI code generation, ensuring maintainability of hand-written code.

Documentation and Entry Point

  • Created a detailed README.md describing the project, endpoints, build/test instructions, Docker usage, CI/CD processes, configuration, and project structure.
  • Added the main application entry point in src/main/java/org/mobilitydata/gtfsvalidator/api/Application.java for the Spring Boot service.

@davidgamez davidgamez changed the title feat: Docker and API implementation feat: API implementation and Docker artifact Jun 18, 2026
@davidgamez davidgamez changed the title feat: API implementation and Docker artifact feat: API implementation and Docker artifact publishing Jun 18, 2026
@davidgamez davidgamez marked this pull request as ready for review June 19, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant