{"id":18773911,"url":"https://github.com/ejunjsh/gorest","last_synced_at":"2025-04-13T09:20:49.979Z","repository":{"id":109691041,"uuid":"96169323","full_name":"ejunjsh/gorest","owner":"ejunjsh","description":"a restful framework with go","archived":false,"fork":false,"pushed_at":"2017-08-01T05:36:17.000Z","size":11,"stargazers_count":20,"open_issues_count":4,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-27T00:54:55.320Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ejunjsh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2017-07-04T02:56:32.000Z","updated_at":"2024-01-29T14:37:47.000Z","dependencies_parsed_at":"2023-03-13T14:05:05.662Z","dependency_job_id":null,"html_url":"https://github.com/ejunjsh/gorest","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejunjsh%2Fgorest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejunjsh%2Fgorest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejunjsh%2Fgorest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejunjsh%2Fgorest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ejunjsh","download_url":"https://codeload.github.com/ejunjsh/gorest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248689198,"owners_count":21145890,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-11-07T19:36:18.102Z","updated_at":"2025-04-13T09:20:49.969Z","avatar_url":"https://github.com/ejunjsh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gorest\n[![Build Status](https://travis-ci.org/ejunjsh/gorest.svg?branch=master)](https://travis-ci.org/ejunjsh/gorest)\n\n[![baby-gopher](https://raw.githubusercontent.com/drnic/babygopher-site/gh-pages/images/babygopher-badge.png)](http://www.babygopher.org)\n\na restful go framework\n## install\n````bash\ngo get github.com/ejunjsh/gorest\n````\n## usage\n### import\n````go\nimport \"github.com/ejunjsh/gorest\"\n````\n### create a app and run a server\n````go\napp:=gorest.NewApp()\napp.[Get/Post/Delete/Put/Error]\napp.Run(\":8081\")\n````\n### supports 4 methods of http request\n````go\napp.Get(\"/\", func(r *gorest.HttpRequest, w gorest.HttpResponse) error {...})\napp.Post(\"/\", func(r *gorest.HttpRequest, w gorest.HttpResponse) error {...})\napp.Delete(\"/\", func(r *gorest.HttpRequest, w gorest.HttpResponse) error {...})\napp.Put(\"/\", func(r *gorest.HttpRequest, w gorest.HttpResponse) error {...})\n````\n### supports parameters from url path\n````go\napp.Get(\"/:abc/:cba\", func(r *gorest.HttpRequest, w gorest.HttpResponse) error {\n\t\tfmt.Println(r.PathParams[\"abc\"],r.PathParams[\"cba\"])\n\t\treturn nil\n})\n````\n### supports string,json,xml,file,template as result of return\n````go\napp.Get(\"/\", func(r *gorest.HttpRequest, w gorest.HttpResponse) error {\n        return  w.WriteJson(jsonObj)\n                //w.WriteString(str)\n                //w.WriteXml(xmlObj)\n                //w.WriteFile(\"/Users/zhouff/file.txt\")\n                //w.WriteTemplates(data,\"/Users/zhouff/index.html\",\"/Users/zhouff/header.html\")\n})\n````\n### supports dealing with errors\n````go\napp.Error(func(err error, r *gorest.HttpRequest, w gorest.HttpResponse){\n\t\tif e,ok:=err.(gorest.NoFoundError);ok {\n\t\t\tw.Write([]byte(e.Error()))\n\t\t}\n\t\tif e,ok:=err.(gorest.InternalError);ok {\n\t\t\tw.Write([]byte(e.Error()))\n\t\t}\n})\n````\n\n### see [example](https://github.com/ejunjsh/gorest/blob/master/main/main.go)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejunjsh%2Fgorest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fejunjsh%2Fgorest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejunjsh%2Fgorest/lists"}