{"id":47720300,"url":"https://github.com/shibayan/openapi-weaver","last_synced_at":"2026-04-18T09:04:30.233Z","repository":{"id":347871467,"uuid":"1194389315","full_name":"shibayan/openapi-weaver","owner":"shibayan","description":"OpenAPI documents into strongly typed C# HTTP clients at build time with an incremental Roslyn source generator.","archived":false,"fork":false,"pushed_at":"2026-04-12T04:52:28.000Z","size":394,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-12T06:23:50.804Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://shibayan.github.io/openapi-weaver/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shibayan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-28T09:37:42.000Z","updated_at":"2026-04-12T04:51:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"ec84b756-9bfa-41a2-b4ff-e9ece33b9284","html_url":"https://github.com/shibayan/openapi-weaver","commit_stats":null,"previous_names":["shibayan/openapi-weaver"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/shibayan/openapi-weaver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibayan%2Fopenapi-weaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibayan%2Fopenapi-weaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibayan%2Fopenapi-weaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibayan%2Fopenapi-weaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shibayan","download_url":"https://codeload.github.com/shibayan/openapi-weaver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibayan%2Fopenapi-weaver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31962892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-02T19:21:29.421Z","updated_at":"2026-04-18T09:04:30.187Z","avatar_url":"https://github.com/shibayan.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![OpenApiWeaver logo](https://raw.githubusercontent.com/shibayan/openapi-weaver/master/docs/public/logo.png)\n\n[![CI](https://github.com/shibayan/openapi-weaver/actions/workflows/ci.yml/badge.svg)](https://github.com/shibayan/openapi-weaver/actions/workflows/ci.yml)\n[![Downloads](https://badgen.net/nuget/dt/OpenApiWeaver)](https://www.nuget.org/packages/OpenApiWeaver/)\n[![NuGet](https://img.shields.io/nuget/v/OpenApiWeaver)](https://www.nuget.org/packages/OpenApiWeaver)\n[![License](https://img.shields.io/github/license/shibayan/openapi-weaver)](https://github.com/shibayan/openapi-weaver/blob/master/LICENSE)\n\n**OpenApiWeaver** is an incremental Roslyn source generator that turns OpenAPI 3.x documents, including OpenAPI 3.2, into strongly typed C# HTTP clients at build time. No runtime code generation, no reflection - just plain C# emitted during compilation.\n\n## Quick Start\n\n**1. Install the package**\n\n```xml\n\u003cItemGroup\u003e\n  \u003cPackageReference Include=\"OpenApiWeaver\" Version=\"x.y.z\" PrivateAssets=\"all\" /\u003e\n\u003c/ItemGroup\u003e\n```\n\n**2. Add your OpenAPI document**\n\n```xml\n\u003cItemGroup\u003e\n  \u003cOpenApiWeaverDocument Include=\"openapi\\petstore.yaml\"\n                         ClientName=\"PetstoreClient\"\n                         Namespace=\"Contoso.Generated\" /\u003e\n\u003c/ItemGroup\u003e\n```\n\nUse `OpenApiWeaverDocument` rather than `AdditionalFiles`; the package's MSBuild targets project these items into compiler inputs automatically.\n\n**3. Use the generated client**\n\n```csharp\nvar client = new PetstoreClient(accessToken: \"your-token\");\n\n// Operations are grouped by OpenAPI tag\nvar pet = await client.Pets.GetAsync(petId: 1);\n```\n\nNo extra dependencies are required — the package bundles the source generator and all analyzer assemblies.\n\n## Features\n\n- **Incremental source generation** — fast, cached rebuilds via the Roslyn incremental generator pipeline\n- **OpenAPI 3.0-3.2 support** — reads `.json`, `.yaml`, and `.yml` documents, including OpenAPI 3.2 features such as response summaries and nullable type arrays\n- **Tag-based sub-clients** — operations grouped by OpenAPI tags, exposed as properties on the root client\n- **Typed request / response models** — sealed classes, enums, nested inline types, dictionaries, and composition-aware schema mappings from `components/schemas`\n- **Multiple request body formats** — `application/json`, `application/x-www-form-urlencoded`, and `multipart/form-data`\n- **Security scheme support** — OAuth2 / Bearer tokens, API keys (header, query, cookie)\n- **Runtime error handling** — non-success responses throw `OpenApiException`, with typed `OpenApiException\u003cTError\u003e` when error schemas are available\n- **OpenAPI-driven XML docs** — IntelliSense comments generated from document, tag, operation, response, and schema metadata with HTML stripped automatically\n- **Build-time diagnostics** — errors and warnings reported as standard compiler diagnostics\n\n## Requirements\n\n- .NET SDK 8.0 or later\n\n## Documentation\n\nFor detailed guides, configuration options, and schema type mapping, visit the **[documentation site](https://shibayan.github.io/openapi-weaver/)**.\n\n## License\n\nThis project is licensed under the [MIT License](https://github.com/shibayan/openapi-weaver/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshibayan%2Fopenapi-weaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshibayan%2Fopenapi-weaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshibayan%2Fopenapi-weaver/lists"}