@GITHUB
OfficeFloor
v@VERSION   About   Tutorials   Blog

One starter, progressive adoption

Add a single dependency to your existing Spring Boot pom.xml and start declaring REST endpoints as YAML files alongside your existing controllers.

Spring's dependency injection, security, persistence, and actuator configuration remain completely intact at every stage. OfficeFloor enriches Spring, it does not replace it.

Get started with the tutorials →

<!-- Add to existing pom.xml -->
<dependency>
  <groupId>net.officefloor.springboot</groupId>
  <artifactId>
    officefloor-rest-spring-boot-starter
  </artifactId>
  <version>@VERSION</version>
</dependency>
# File name = HTTP method + URL path
src/main/resources/officefloor/rest/
  greeting.GET.yml       →  GET  /greeting
  greeting.POST.yml      →  POST /greeting
  greeting/{name}.GET.yml → GET  /greeting/{name}

# greeting.POST.yml: three composed functions
validate:
  class: ValidateGreetingLogic
  outputs:
    valid: build

build:
  class: PostGreetingLogic
  next: audit

audit:
  class: AuditGreetingLogic

AI-readable explicit function orchestration alongside @RestController

In a Spring @RestController, the flow between validation, business logic, and auditing is implicit, living in the call stack and framework conventions rather than in any single readable artefact. The YAML keeps each concern in its own function. OfficeFloor wires them together in the order the file declares.

Each function declares only its own Spring bean dependencies, injected by Spring exactly as in any other bean. No function knows about the others, and no annotation describes the wiring. The YAML file is the complete specification.

Conditional branching, sequential composition, and error flows are all declared in the same file. The complete endpoint logic is readable without opening a single Java file.

See the full tutorial series →

Why explicit function orchestration makes AI development reliable

In a Spring controller, the flow between an endpoint's steps is implicit, spread across the call stack and framework conventions: which function runs next, which branch handles a validation failure, which step writes the response. This is opaque to AI coding tools.

OfficeFloor's YAML files are the specification. Every endpoint's steps, their order, and their conditional branches are explicit in one file. An AI tool can read, generate, and refactor endpoints from the YAML alone, without needing to understand the full codebase.

Explicit orchestration gives AI a reliable, unambiguous surface to work with instead of implicit framework conventions.

Read more about the underlying approach →

Inversion of Coupling Control

The paradigm behind OfficeFloor: separating dependency, continuation, and thread concerns from application logic