akhansari/FSharp.OpenApi
54.5
Adequate · 3 October 2026
1.7k
lines of production code
F#
primary language
2
measurements over time
What this system is
FSharp.OpenApi is an F\# library that wraps the OpenAPI.NET SDK to enable the construction of OpenAPI 3.2 specifications using F\# computation expressions. It provides a fluent domain-specific language for building API documents, schemas, and operations while automatically handling null-safety for collections. The system includes utilities for serializing these documents to JSON and integrates with ASP.NET Core to expose API specs via Scalar UI.
Features
Initial release of FSharp.OpenApi library
This change introduces the FSharp.OpenApi library, an F\# wrapper for the OpenAPI.NET SDK that allows developers to describe API specifications using F\# computation expressions. The repository now includes the core library, a sample project demonstrating routing, and a test suite, along with standard project configuration files like Directory.Build.props and an MIT license. The library supports generating OpenAPI 3.2 documents and provides helpers for exposing API specs to Scalar UI.
(repo-wide) · high confidence
Introduction of OpenAPI 3.2 specification support and new builder API
The OpenApi module now supports the OpenAPI 3.2 specification, introducing a comprehensive set of builder functions (e.g., apiDocument, apiInfo, apiSchema) for constructing API definitions. A new OpenApiFactory provides utilities for serializing documents to JSON and managing operations, with serialization defaulting to the OpenAPI 3.2 version.
OpenApi · high confidence
New OpenAPI DSL builders for fluent document construction
Added a comprehensive set of F\# computation-expression builders in the OpenApi.Builders namespace (e.g., DocumentBuilder, SchemaBuilder, OperationBuilder, ComponentsBuilder) that wrap the Microsoft.OpenApi types. These builders provide a fluent, domain-specific language for constructing OpenAPI documents, automatically initializing null collections (such as dictionaries and lists) to prevent null-reference errors, and exposing custom operations for all standard OpenAPI fields including schemas, paths, security requirements, and extensions.
OpenApi/Builders · high confidence
New script to detect missing OpenAPI model implementations
A new F\# script, check-missing-implementation.fsx, has been added to the scripts directory. This tool analyzes the OpenAPI.NET C\# model files to identify public properties that lack corresponding implementations in the associated F\# builder files, helping developers track incomplete code generation or manual overrides.
scripts · high confidence
Behavioural changes
Introduce Scalar API reference UI and custom OpenApi routing extensions
The OpenApi.Sample.Routing sample now uses Scalar for API documentation, accessible via the new /scalar endpoint, replacing previous UI implementations. This change introduces custom extension methods on IEndpointRouteBuilder (MapGet/MapPost) that automatically register OpenAPI operations alongside standard ASP.NET Core routing, simplifying the integration of API documentation with route handlers.
OpenApi.Sample.Routing · high confidence
Test coverage
Added unit tests for OpenAPI builder and factory components
Added new F\# unit tests in the OpenApi.Tests project to verify the behavior of the OpenAPI document builders and factory. The tests cover path and schema initialization, accumulation of examples and dependent required fields, parameter and encoding flag handling, XML node type configuration, JSON media content creation for requests and responses, operation tag and response handling, and the OpenApiFactory's ability to generate OpenAPI 3.2 compliant JSON output with correct versioning and serialization options.
OpenApi.Tests · high confidence
Dependencies
Initial project structure with .NET 10 and OpenAPI dependencies
This change introduces the core library, test suite, and a sample application for the F\# OpenAPI wrapper. The main library targets .NET Standard 2.0 and references Microsoft.OpenApi (v3.10.0) and System.Text.Json (v10.0.11). The test project targets .NET 10.0 and uses xUnit (v2.9.3) and Microsoft.NET.Test.Sdk (v18.9.0). A new sample project, OpenApi.Sample.Routing, also targets .NET 10.0 and integrates Scalar.AspNetCore (v2.16.20) for API documentation.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 55 → 55 (-0.2)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.0)
- Architecture 91 → 96 (+5.0)
- Maturity 37 → 37 (+0.0)
- Readiness 55 → 55 (+0.0)
- Security 79 → 75 (-4.1)
Findings
- No change — the same findings as the prior survey.
API surface
- Unchanged — 3 HTTP endpoints
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
akhansari/FSharp.OpenApi was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7a6c347244ff54aba9682cb1eb0b15455e8ef397 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.