A dotnet CLI tool to generate type-safe F# and Fable clients from OpenAPI/Swagger or OData services.
Hawaii is a .NET CLI tool that generates type-safe F# and Fable client libraries from OpenAPI/Swagger specifications or OData services. It automates the creation of API clients with proper JSON deserialization, discriminated union response types, and full project scaffolding, reducing manual boilerplate and ensuring type safety.
F# and Fable developers who need to consume RESTful APIs or OData services in a type-safe manner, particularly those working in .NET or browser-based applications.
Developers choose Hawaii for its seamless integration with F# and Fable ecosystems, its support for both OpenAPI and OData sources, and its ability to generate production-ready client projects with minimal configuration, eliminating the risk of runtime type errors.
dotnet CLI tool to generate type-safe F# and Fable clients from OpenAPI/Swagger or OData services
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Generates clients for both .NET F# and browser-based Fable, as specified in the 'target' configuration option, enabling seamless cross-platform development.
Creates discriminated union types for all possible endpoint responses, ensuring compile-time error handling and reducing runtime exceptions, as highlighted in the features list.
Automatically generates full F# projects including dependencies and targeting netstandard2.0, simplifying integration into existing solutions without manual scaffolding.
Allows overriding of source schemas via 'overrideSchema' to fix missing operation IDs or incorrect types, providing flexibility for imperfect API specifications.
Supports OData services by translating them to OpenAPI specs using OpenAPI.NET.OData, extending type-safe client generation to additional API standards like the TripPin example.
Does not fully support `anyOf`/`oneOf` JSON schema constructs unless they contain a single element, limiting its use with APIs that rely on complex polymorphism, as admitted in the limitations section.
The generated client code is static and must be manually regenerated using the CLI tool when the API specification changes, lacking built-in automation for dynamic updates.
Requires creating and maintaining a detailed hawaii.json configuration file for each client, which adds initial setup overhead compared to more streamlined tools.