{"id":37483254,"url":"https://github.com/snixtho/hawf","last_synced_at":"2026-01-16T07:29:17.935Z","repository":{"id":37098078,"uuid":"500890925","full_name":"snixtho/hawf","owner":"snixtho","description":"HTTP API Wrapper Framework - Quickly build API wrappers and clients","archived":false,"fork":false,"pushed_at":"2025-07-12T11:46:39.000Z","size":132,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-03T18:46:38.203Z","etag":null,"topics":["api","api-client","csharp","framework","http"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snixtho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-07T15:08:56.000Z","updated_at":"2025-07-12T11:45:32.000Z","dependencies_parsed_at":"2022-06-24T12:35:37.996Z","dependency_job_id":null,"html_url":"https://github.com/snixtho/hawf","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/snixtho/hawf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snixtho%2Fhawf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snixtho%2Fhawf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snixtho%2Fhawf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snixtho%2Fhawf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snixtho","download_url":"https://codeload.github.com/snixtho/hawf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snixtho%2Fhawf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","api-client","csharp","framework","http"],"created_at":"2026-01-16T07:29:17.052Z","updated_at":"2026-01-16T07:29:17.924Z","avatar_url":"https://github.com/snixtho.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hawf\n[![Run Tests](https://github.com/snixtho/hawf/actions/workflows/run-tests.yml/badge.svg)](https://github.com/snixtho/hawf/actions/workflows/run-tests.yml) [![Publish Release](https://github.com/snixtho/hawf/actions/workflows/publish-release.yml/badge.svg)](https://github.com/snixtho/hawf/actions/workflows/publish-release.yml) ![Nuget](https://img.shields.io/nuget/v/Hawf)\n\nHttp API Wrapper Framework - Quickly build API wrappers and clients\n\n# Installation\nYou can find the package on [NuGet](https://www.nuget.org/packages/Hawf/) or install through command line:\n\n```\ndotnet add package Hawf\n```\n\n# Basic Usage\n\nCreating an API is as simple as inherting the `ApiBase` and annotate the `ApiClient` attribute:\n\n```csharp\n[ApiClient(\"https://api.mywebsite.com\")]\npublic class MyApi : ApiBase\u003cMyApi\u003e\n{\n    public Task\u003cstring\u003e MyApiCallAsync() =\u003e GetStringAsync(\"/myendpoint\");\n}\n```\n\nYou can then instantiate the class and call the api endpoint:\n\n```csharp\nvar api = new MyApi();\n\nvar response = await api.MyApiCallAsync();\n\nConsole.WriteLine(response);\n```\n\nThis is only a very basic example of how it works. The framework provides various convenient methods and tools to quickly create a complete client for your API.\n\n# Features\n- Quickly define your API endpoints into client code with a rich builder API.\n- Supports automatic JSON serialization/deserialization.\n- Handles authentication and authorization of your endpoints.\n- Can avoid rate limits to trigger on APIs\n- Based on the Task Asynchronous Programming (TAP) pattern.\n- Response caching.\n- Standardizes the code structure to keep it readable and maintainable.\n\nFor a complete overview of all the features, check out the documentation.\n\n# Documentation\nCheck out the main documentation [here](docs/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnixtho%2Fhawf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnixtho%2Fhawf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnixtho%2Fhawf/lists"}