{"id":22138386,"url":"https://github.com/takeruun/go-restapi-boilerplate","last_synced_at":"2026-05-02T14:43:54.658Z","repository":{"id":98236852,"uuid":"551151416","full_name":"takeruun/go-restapi-boilerplate","owner":"takeruun","description":"net/http で作成したREST API サーバー","archived":false,"fork":false,"pushed_at":"2022-12-17T05:40:49.000Z","size":89,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-29T15:50:45.198Z","etag":null,"topics":["go","gorm","mysql","net-http","session-cookie","sql-migrate"],"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/takeruun.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":"2022-10-13T23:24:03.000Z","updated_at":"2022-12-17T04:32:05.000Z","dependencies_parsed_at":"2023-03-07T07:30:28.803Z","dependency_job_id":null,"html_url":"https://github.com/takeruun/go-restapi-boilerplate","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/takeruun%2Fgo-restapi-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/takeruun%2Fgo-restapi-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/takeruun%2Fgo-restapi-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/takeruun%2Fgo-restapi-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/takeruun","download_url":"https://codeload.github.com/takeruun/go-restapi-boilerplate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245251322,"owners_count":20584857,"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":["go","gorm","mysql","net-http","session-cookie","sql-migrate"],"created_at":"2024-12-01T20:09:48.620Z","updated_at":"2026-05-02T14:43:49.618Z","avatar_url":"https://github.com/takeruun.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# golang REST API boilerplate\ngolang製 REST API ボイラーテンプレート\n\n# 技術構成\n- mysql: 8.0.28\n- go: 1.19.2\n- net/http\n- gorm\n- sql-migrate\n- gorilla/sessions\n- github actions\n\n# 仕様\nTODOリストAPI\n- 認証機能は UserId をセッションに保存\n\n## ルーティング\n\n### トップ\n|   | メソッド | URI | 認証有無 |\n| - | ------- | --- | ------ |\n| - | GET | / | なし |\n\n### ユーザー認証API\n|   | メソッド | URI | 認証有無 | クエリ | リクエストボディ |\n| - | ------- | --- | ------ | - | - |\n| ログイン | POST | /auth/sign_in/ | なし | | [AuthSignInRequestDto](./controller/dto/auth.dto.go#L3) |\n| 会員登録 | POST | /auth/sign_up/ | なし |  |[AuthSignUpRequestDto](./controller/dto/auth.dto.go#L8) |\n\n### ログインユーザーAPI\n|   | メソッド | URI | 認証有無 | クエリ | リクエストボディ |\n| - | ------- | --- | ------ | - | - |\n| ログインユーザー情報取得 | GET | /auth/user/ | あり | | \n| ユーザー更新 | PUT | /auth/user/ | あり | | [AuthUserUpdateRequestDto](./controller/dto/auth.dto.go#L14) |\n| ユーザー削除 | DELETE | /auth/user/ | あり | | |\n\n### TodoAPI\n|   | メソッド | URI | 認証有無 | クエリ | リクエストボディ |\n| - | ------- | --- | ------ | - | - |\n| ユーザーに紐づく全Todoデータ取得 | GET | /todos/ | あり | | |\n| 単一Todoデータ取得 | POST | /todos/id/ | あり | | |\n| Todo新規作成 | POST | /todos/ | あり | | [TodoCreateRequestDto](./controller/dto/todo.dto.go#L3) |\n| Todo更新 | PUT | /todos/id/ | あり | | [TodoCreateRequestDto](./controller/dto/todo.dto.go#L8) |\n| Todo削除 | DELETE | /todos/id/ | あり |\n\n## ミドルウェア対応パス表\n| URI | [Cors](./middleware/auth.middleware.go) | [WriteHeader](./middleware/write_header.middleware.go) | [Auth](./middleware/auth.middleware.go) | [SetHttpContext](./middleware/set_http_context.middleware.go) |\n|-|-|-|-|-|\n|/|x|x|x|x|\n|/toods/*/|○|○|○|○|\n|/auth/sign_in/|○|○|x|○|\n|/auth/sign_up/|○|○|x|○|\n|/auth/user/*/|○|○|○|○|\n\n# 環境構築\n## 1. ルートディレクトリに「.env」ファイルの用意\n```\ntouch .env\n```\n下記環境変数をセット\n|変数名|説明|\n|----|----|\n|GO_MODE|稼働環境|\n|DB_USER|DBユーザー|\n|DB_PASSWORD|DBユーザーパスワード|\n|DB_HOST|DBホスト|\n|DB_NAME|データベース名|\n|SECRET_HASH_KEY|セッションキー|\n|MAIL_AUTH_EMAIL|メール送信アカウントのメールアドレス|\n|MAIL_AUTH_PASSWORD|メール送信アカウントのパスワード|\n|MAIL_FROM_NAME|メール送信元名|\n|MAIL_FROM_EMAIL|メール送信元のアドレス|\n\n## 2. イメージビルドとDB作成・マイグレーション\n```\nmake setup\n```\n\n## 3. APIスタート\n```\nmake start\n```\n\n\n# Makefile\n### setup\nイメージビルドとDB作成・マイグレーション\n\n### db.create\nDB作成\n\n### db.migrate\nDBマイグレーション\n\n### db.seed\nシードデータ投入\n\n### start\nAPIスタート（Dockerコンテナ起動）\n\n### end\nAPIストップ（Dockerコンテナ停止）\n\n### entry-server-container\nDockerサーバーコンテナに ash で入る\n\n### entry-db-container\nDocker DBコンテナに bash で入る","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftakeruun%2Fgo-restapi-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftakeruun%2Fgo-restapi-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftakeruun%2Fgo-restapi-boilerplate/lists"}