{"id":41997545,"url":"https://github.com/candango/uiok","last_synced_at":"2026-01-26T01:08:18.252Z","repository":{"id":330003371,"uuid":"1117805432","full_name":"candango/uiok","owner":"candango","description":"UI toolkit implements HATEOAS","archived":false,"fork":false,"pushed_at":"2025-12-22T18:48:40.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-24T07:31:28.275Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/candango.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,"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":"2025-12-16T20:57:18.000Z","updated_at":"2025-12-22T18:47:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/candango/uiok","commit_stats":null,"previous_names":["candango/uiok"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/candango/uiok","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candango%2Fuiok","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candango%2Fuiok/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candango%2Fuiok/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candango%2Fuiok/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/candango","download_url":"https://codeload.github.com/candango/uiok/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candango%2Fuiok/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28763204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T00:37:26.264Z","status":"ssl_error","status_checked_at":"2026-01-26T00:37:25.959Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2026-01-26T01:08:17.541Z","updated_at":"2026-01-26T01:08:18.247Z","avatar_url":"https://github.com/candango.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# candango/uiok\n\n**uiok** is a Go framework for building RESTful APIs that fully embrace the\nHATEOAS principle (\"Hypermedia As The Engine Of Application State\").  \nIt provides abstractions for defining resources, generating hypermedia controls\n(links and actions), and constructing dynamic, discoverable API responses.\n\n## Features\n\n- **Component-based**: Define reusable units of UI logic and rendering.\n- **Composite support**: Nest and aggregate components for complex UIs.\n- **Validation abstraction**: Integrate form and input validation logic cleanly.\n- **HTTP compatibility**: Bind component data directly from HTTP forms.\n\n## Getting Started\n\n TODO\n\n## Usage\n\nA basic usage example can be found in the [`examples/`](examples/) folder.  \nHere’s a minimal example:\n\n```go\npackage main\n\nimport (\n    \"os\"\n    \"context\"\n    \"github.com/candango/uiok/uiok\"\n)\n\ntype HelloComponent struct {}\n\nfunc (h *HelloComponent) Partial() ([]byte, error) { return []byte(\"\u003cp\u003eHello, world!\u003c/p\u003e\"), nil }\nfunc (h *HelloComponent) Render() ([]byte, error)  { return h.Partial() }\nfunc (h *HelloComponent) Change(ctx context.Context) error { return nil }\n\nfunc main() {\n    c := \u0026HelloComponent{}\n    _ = uiok.Write(os.Stdout, c)\n}\n```\n\n## Contributing\n\nIssues and pull requests are welcome! Please see our [contributing\nguidelines](CONTRIBUTING.md) for details.\n\n## License\n\n[MIT License](LICENSE)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcandango%2Fuiok","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcandango%2Fuiok","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcandango%2Fuiok/lists"}