A Go (Golang) Backend Clean Architecture project with Gin, MongoDB, JWT Authentication Middleware, Test, and Docker.
アジャイル系男子の日常 Go Ginとは❔❔ 自動生成手順📚 1. ファイル構成 2.openapi/openapi.yml 3.生成コマンド 4.★うわぁ。できたぁ。★ Go言語に高階関数が見当たらない🔍 Go Generate との出会い 新解体実行手順 ~Go2まで耐え抜く編~ 解らないし高階関数ジェネレーターを適当に作っちゃおう(業務で作ったやつコピペ)🔨🔨 型変換も一行でやりたいよね。作っちゃお(業務で作ったやつコピペ)🔨🔨 1.ファイル構成 2. openapi/model.mustache 3.生成コマンドをもう一度 4. go generate 5.★うわぁ。できたぁ。2★ とりあえず適当なレスポンス返してみる。🌶 main.go go/api_api1.go 実行👼 確認👼👼 Gitで管理する際のテンプレート .gitignore .openapi-g
はじめに この記事は Go Advent Calendar 2020 18 日目の記事です。 普段 Gin をよく使用しているのですが、ふとコミットしたくなり issue を漁っていたら運良くコミットできました。 修正内容はちょっとしたものですが、私の PR がマージされるまでにどんなことをしたのかまとめたいと思います。 Gin とは Gin は最もスター数の多い Go の Web フレームワークです。 参考:Top Go Web Frameworks Django や Ruby on Rails のようなリッチなものではなく、必要最低限の機能が備わったシンプルなフレームワークとなっています。 package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/nyan", func
はじめに サーバーサイドの八木です。 娘が生まれてからアゴヒゲを一回もそっていなかったようでモサモサになってしまいました。 娘は喜んで引っ張っているので一旦はヨシとします(怒られたら謝ります) 先日、なんとなく Zenn を眺めていると以下の記事が目に入りました。 そういえばAPIのシナリオテストしたいけど、丁度いいツールが見当たらず長らく手つかずになっていたプロジェクトがあり、導入する価値がありそうだなぁと思い試してみました。 結果から言うと現在使用しています。導入して良かったと感じています 🎉 良かった点 go test で完結出来ること API の呼び出し結果を取り回すことが出来る テストケースだけYAMLに逃がすことが出来るのでメンテすべきファイルが明確になる 機能がシンプルなので学習コストが低い データベースへのクエリ発行も対応している 上記がポイントかと思います。 特に 「g
長﨑県 女性 婦人画報で取り寄せて最高に美味しいクッキーでした。 友人にプレゼントいたしました所、皆さんに喜んでもらいました。 埼玉県 女性 ホームページの写真をみて注文したので分かっていた事でしたが、家に届いて可愛いフタを開けてビックリ!! 隙間なくぎっしりつめられたクッキーの美しい事。そして食べてまたビックリ!とても美味しかったです。 東京都 女性 とても素敵なクッキーを届けて頂き、ありがとうございます。 おいしいだけでもすごいのに、材料やコンセプトにひとつひとつ物語を感じました。 味や香りもちゃんとわかりました。 コロナの影響で暗い気持ちでしたが元気がでます! 大阪府 女性 最初は友人にいただき、とても美味しかったので私も知人に贈りました。 味も食感もたくさんの種類で本当に楽しめます。 値段もあの重さにしてはお安い!!当分贈り物も銀の森さんで決めました。 東京都 女性 知人からの贈り
購入年月日:2021年7月17日 購入場所:ビックカメラ有楽町店 購入価格:877円(税込) 商品状態:状態は優良 原料:- 度数、容量:47%、100㎖ 輸入者:中国醸造 ■お願い■ 次の2つのブログランキングに参加しています。クリックいただけると とってもうれしいです! ① ウィスキー人気ブログランキング⇒ ②ブログ村人気ブログランキング⇒ 今日は、国内製造のGINを取り上げたいと思います。コロナの予防接種の帰りにビックカメラ有楽町店で購入したものです。 お洒落な立方体の瓶です。50㎖かと思ったら100㎖入っていました。 それでは、実際に飲んでみたいと思います。 〇開封 金属のスクリューキャップです。ビニールカバーがはがしづらく、開けるのに手間取りました 〇色合い 無色透明です 〇香り 香草ようなの澄んだ香りです。心が落ち着くような香りです。 〇味わい 最初にストレートで飲むと、優しい
元号ももう令和に代わり粛々とGoの勉強を続けているのですが、今回はGOとGraphQLを使って CRUDできるAPIを作ってみました。 gin-gorm-gqlgen-sample そもそもGOに慣れていなかったり各種ライブラリの情報が少なかったりで結構時間かかりましたが、 なんとかそれらしきものができたのでリポジトリを共有しておきます。 前回の記事でも、最初にながれを説明して詰まったところを最後にまとめて終わりという形だったので 今回も同じ形でいければななんて思っています。 サンプルを作るにあたり色々と情報を漁ったのですがGormとgqlgenを組み合わせの情報が少なく苦労したので そこらへんの情報ものせていければ。 使用技術 今回GraphQLサーバ構築に使った大きな部分の技術をまとめると Docker Dep (パッケージ管理) Gin (Webフレームーク) Gorm (ORM)
購入年月日:2021年7月17日 購入場所:ビックカメラ有楽町店 購入価格:1,080円(税込) 商品状態:状態は優良 原料:- 度数、容量:47%、50㎖ 輸入者:雄山 ■お願い■ 次の2つのブログランキングに参加しています。クリックいただけると とってもうれしいです! ① ウィスキー人気ブログランキング⇒ ②ブログ村人気ブログランキング⇒ 今日は、GINを取り上げたいと思います。きちんと飲もうと思ってGINを買うのは今回が初めてです。 コロナの予防接種の帰りにビックカメラ有楽町店で購入しました。 きれいな空色の瓶につられて思わず購入してしまった!というのがほんとのところです。 ボトルのデザイン、とても素敵です。 それでは、実際に飲んでみたいと思います。 〇開封 金属のスクリューキャップです。簡単に開封できました 〇色合い 無色透明です 〇香り とてもいい香りです。ハッカのような甘い薬草
以前、本連載ではGoの標準機能だけで掲示板を作る方法を紹介しました。しかし、専用のフレームワークを使うと、より簡単にさまざまな機能が利用できます。今回は、Go言語で最も人気があるWebフレームワークGinを使って簡単なWebアプリを作る方法を紹介します。 Go言語とGinを使うと手軽にアプリが開発できる Webフレームワーク「Gin」について Webアプリケーションの開発では、何度も似たような処理を実装する場面があります。そこで、似たような処理をまとめて開発を簡易化するためのライブラリ一式を「Webフレームワーク」と呼びます。そもそもフレームワークとは「骨組み」という意味があります。つまり、Webアプリケーションの土台となる枠組みを提供するものです。 各プログラミング言語ごとに、その言語の特色を反映したフレームワークがありますが、Go言語にも、Gin、Beego、Martini、Echoな
沖縄県の飲むにまつわる専門店・LIQUID(リキッド)が主宰する、島々の造り手たちと共に、島々の大地の恵みを活かした飲み物づくりを探究するレーベル『ISLANDS BEVERAGE(アイランズ ビバレッジ)』が2020年発足。 第1弾となる、泡盛をベースに、沖縄県産の特別なレモン、野草、スパイスなど、厳選したボタニカルを使用した アイランドジン「O LEMON GIN(オー レモンジン)」が2020年12月25日(土)より発売された。 「O LEMON GIN」の酒造りのパートナーには、泡盛をはじめ、ハイプルーフスピリッツ「ネイビーストレングスクラフトジン」などを製造する、沖縄県西原町の泡盛蔵「石川酒造場」を迎え、共同開発。 香りのキーとなるボタニカルは、沖縄本島南部の数少ない農家で栽培される”コウスイレモン”という愛称がついた香り豊かな無農薬のレモンを使用。 黄緑色
最近は体調管理に一番困っているやっさんでございます。 頭痛や肩こり、そして腰痛。 年齢が上がると人には話しにくい悩みが増えていきますね。 さて、今回はAWS Lambdaで GolangのWebフレームワークGinを利用してみました。 Ginとは GinはGo(Golang)で記述されたWebフレームワークです。 パフォーマンスと優れた生産性が必要な場合は、Ginが気に入るはずです。 AWS Lambda × Ginのメリット AWS LambdaでGinを利用することのメリットを考えてみます。 再利用性と可搬性の向上 Ginを利用することで、再利用性と可搬性が向上します。 GinはWebフレームワークですので、サーバーでも動かすことができます。 少しの修正でAWS Lamdaからコンテナアーキテクチャに変更することも可能になります。 フレームワークの恩恵を享受できる GolangではAW
まずはじめに Clean Architecture という設計思想を理解する記事ではなく、 Go 言語に適したバックエンドの構成を模索していた時に Clean Architecture を元に構築した人の真似をしたら思いのほか良かったため、 自分が実装した時のサンプルコードを載せるといった趣旨の記事。 Clean Architecture とは Robert C.Martin という方が提唱されている設計方法。 いわゆるディレクトリ構成とか考えるときに、 MVC やら MVVC やら色んなパターンがあるけど、 結果的にそういう構成を考える時のベースになる。 Go + Gin で、例えば MVC をそれとなく実装しようとすると途端に循環参照に陥る。 Go の import cycle not allowed (循環参照) の対応 Clean Architecture は「どのサービスも設計の
はじめに k.s.ロジャースの西谷です。 今回はGo言語とGinを使ってプロジェクトの開発を行いました。 実務利用は初めてで、このときに感じた便利な機能や躓いた箇所について書いてみようと思います。 もし、間違いやより良い実装があればコメントにて教えて頂けたらと思います。 開発環境 言語: Go 1.13.3 フレームワーク: Gin 便利だと思った所 リクエストのバリデーション Ginではリクエストオブジェクトの定義にbindingを書くことでバリデーションを実施できます。 特殊パターン以外はリクエストに直接書くことができるので、直感的だと思います。 以下のように書くと、reqはIDの値は必ず存在し、Ageは0以上となります。
こんにちは。ZeekなGoeです。 当ブログへのご訪問、ありがとうございますm(__)m 新型コロナウイルスの猛威が止まりませんね(´・ω・`) 確実に日に日に感染が広がっている印象です。 いろいろなイベントが中止になり、ついには小中高の学校での休校が決まりましたね。 ここまで大規模な世の中の動きは、初めてかもしれません。 問題が山積みで、政府の対応も後手に回っている感が否めないですね(´・ω・`) 今後、この問題が早急に解決することを切に願います。 さて、ちょっと暗い話題の前フリでしたが、お酒の本題は明るくいきましょう! 今回は、ジンの記事になります。銘柄は「AWA GIN CLEARBOTTLE」になります。 以前、ウイスキーラバーズ名古屋2020に行った時に購入したお酒になります。 ちなみにウイスキーラバーズ名古屋2020の記事は、過去の関連記事に リンクを貼っておきますので、気にな
はじめに 前回の続編。 サーバレスの走り切り処理を書いたのだから、今度は常駐処理を書いてみよう。 JavaではWebアプリケーションサーバはSpringがデファクトになりつつあるが、GoのWebアプリケーションフレームワークはGinが良いという話を聞いた。今回は、Ginを試してみつつ、せっかく作ったのだから常駐のサーバレスコンテナで動かしてみよう。 統合開発環境は前回に引き続き、VSCode+Remote Development Extension Pack+EC2を使った。 Cloud9でいいじゃんという話もありつつ、ここはもう好みの問題だということで、こっちを使い続けた。 ※Cloud9も使いやすくて好き。 Go言語ランタイムのインストールなんかも、前回の記事を参照。 全体構成 以下のようになる。アプリケーションの仕様は以下の通り。 ※Ginのサンプルプロジェクトを少しだけ改造。 /a
はじめに Go言語で開発したWebアプリをローカルサーバーでデバッグする(VSCode)ことができましたので、 Go/Gin/Vue.js/MySQLでSPA(単一のWebページでアプリケーションを構成)を開発してみます。 ・フロントエンドはイマドキのWebアプリ風にSPAで開発したいためVue.jsを使用します。 JSフレームワークはAngular・React・Vue.jsなどがありますが、各々を比較検討し、 コンポーネント内記述がHTMLとJSとで独立しているのでソースをより綺麗に書けて、 双方向データバインディング(データと描画を同期する仕組み)と、 スモールスタートが可能なVue.jsを選定しました。 ・バックエンドはイケてる企業で流行りのGo/Ginを使用します。 Go言語のWAFは潤沢にありますが、各々を比較検討し、 比較的パフォーマンスと生産性が高く、日本語ドキュメントもある
package main import ( "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" "github.com/swaggo/gin-swagger" "net/http" _ "use_swagger/docs" ) // @title APIドキュメントのタイトル // @version バージョン(1.0) // @description 仕様書に関する内容説明 // @termsOfService 仕様書使用する際の注意事項 // @contact.name APIサポーター // @contact.url http://www.swagger.io/support // @contact.email support@swagger.io // @license.name ライセンス(必須) /
広島スピリッツを、 世界へ。 100年以上の蒸留技術を受け継ぐ当社の蒸留責任者が 厳選された広島産の素材でつくる「SAKURAO GIN」。 華やかな香りを生み出すレモン 芳醇な香りの柚子などの柑橘類やヒノキや牡蠣殻、 そしてサクラオブルワリーアンドディスティラリー創業の地“桜尾”の象徴である桜といったボタニカルが 豊かなアロマを生み出します。 さらにLIMITEDにおいては、ジュニパーベリーをはじめ 17種類すべてのボタニカルを広島産にこだわり、 ドライ・ジンの本場イギリスの伝統的な製法で蒸留。 SAKURAO DISTILLERYから世界に向けて送り出す、 Made in 広島のジンです。 広島産のフレッシュな柑橘類など 9種類のボタニカルとジュニパーベリー、 コリアンダーシードなど計14種類の原料を使用し、 スティーピングとヴェイパー製法で製造したジン。 柑橘の香りと伝統的なジンの風
今日はGinを使って、簡単なGo APIを動かすところまでやってみたいと思います。初歩ということで、まずはインストールとQuick Startを実施します。 Ginとは Ginのインストール Ginを動かす Ginとは Ginとは、Golangで開発されたWebフレームワークで、パフォーマンスに優れたAPI機能を提供します。(GinのGitHubから引用しています。) Gin is a web framework written in Go (Golang). It features a martini-like API with performance that is up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin. 引
手品用品やマジックDVDのことならお任せください。 「カードマジックを華麗に演じたい」「気軽にコインマジックを見せたい」「手品やジョークグッズで宴会などを乗り切りたい」… そんな方はぜひ当店の手品用品をご活用下さい!当店では、オリジナル・独占販売の商品から、国内外の手品用品まで多数取り扱っております。 持ち運びも便利で手軽に披露出来るカードマジックやコインマジックはもちろんファイアーマジックやサロン・ステージマジック用のアイテムまで、 初心者の方からプロの方まで納得の手品グッズを豊富に取り揃えております。
はじめに 今後 Go を使用した案件をやる機会があり、現在 Go の勉強中なのですが、今回は案件でも使用するフレームワーク Gin を使用してログインAPIを実装したいと思います。Gin はメモリ利用量が少なく、 reflection を使用していないため高速で動作します。また、余計な機能がないため、学習コストが低く初心者にオススメです。 ログインAPIの作成 では早速ログインAPIを作成したいと思います。冒頭の通り今回は Gin を使用するので go get しておいてください。 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() r. POST("/login", func(c *gin.Context) { c.String(http.Status
APIとして使用される場合を想定 GinのGors設定 許可されないアクセスがされた場合 CORS 対応の後にルーティングを書かないとうまく動かない APIとして使用される場合を想定 近年SPAサイトがよく作られており、サーバサイドの言語はAPIとして開発されることが多いでしょう。 APIとして使用する場合、注意しなくてはいけないのがクロスオリジンの設定です。 他サイトから自由自在にアクセスされてしまえば、セキュリティ的にアウトですしDos攻撃の餌食にもなってしまいます。 なので、APIへのアクセスを許可するサイトURL、メソッド(POSTやGET)、ヘッダー情報を予め設定しておきましょう。 GinのGors設定 まずは必要なモジュールをインストールします。 go get github.com/gin-contrib/corsあとは以下のように「r.Use(cors.New(cors.Co
お題「ささやかな幸せ」 お題「昨日食べたもの」 お題「大好きなおやつ」 お題「これ買いました」 楽しみにしていた、 ふるさと納税の返礼品が届きました😆 鹿児島のクラフトジン KOMASA GIN です。 名産品らしい 桜島こみかん と ほうじ茶のジンです。 昨日、 桜島こみかん🍊を開栓😍 nanamiは お酒は そのものの味を楽しみたいので、 ロックで。 …好き嫌いが分かれそうなお酒でした😅 🍷 口にすると すごく甘いみかんの香りが 押し寄せてきて そのあと ジュニパーベリーの 独特の香りが…💦 nanamiは 甘いお酒を好まないので 強く甘い香りは 少し苦手でした💦 HPを見ると オレンジジュースで割るレシピが 紹介されてました。 なるほど✨ これはアリかも! nanamiは 多分飲むことはないかな…(←ジュースが苦手。 その日の気分によって 少しずつ 楽しみたいと思います
前回は、Ginフレームワークに慣れるために、簡単なAPIを作成しました。 今回は、ginのControllerの実装とそのテストを行います。 前回 api ├── README.md ├── app │ ├── application.go │ └── url_mappings.go ├── controllers │ ├── ping_controller.go │ └── products │ └── products_controller.go ├── domain │ └── products │ └── product.go ├── main.go └── services └── products_service.go
概要 仕事でgolangを使ってみようという話になりAPIを作りました。 自分自身も他メンバーもRails使いが多いのでRailsに寄せてMVC構成で作りました。 golangに慣れたメンバーが少なかったのでできるだけメジャーで情報が多そうなフレームワークを使おうと考えてginを採用しました。 同様にORMもgormがメジャーなようだったので採用しました。 golang自体が手探りの状態だったので主に以下を参考にさせて頂きました。 日本語のQiitaの記事Gin と GORM で作るオレオレ構成 API Starが多かった深センの方が作ったAPI 自分でもサンプルAPIとしてgin-gorm-rails-like-sample-apiを作ってみましたので紹介のためにこの記事を書きました。 想定読者として自分のようにRails辺りで開発してきてgolangに手を出してみようと考えている方です
Go 1.14 Gin 1.5.0 Docker 19.03.8 docker-compose 1.25.4 やること GinでREST APIを作成 realizeでホットリロードできるようする docker-composeでNginxを立ててリバプロする GinでREST APIを作成 GETでリクエストがきたら、 {"key":"value"}を返すだけのコードを作成 package main import "github.com/gin-gonic/gin" func main() { router := gin.Default() router.GET("/api", func(context *gin.Context) { context.JSON(200, gin.H{ "key": "value", }) }) router.Run() }
表題通りGinを使って簡単なサンプルアプリを作ってみたので必要最低限の使い方をまとめてみます。 GitHub - gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times fast
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く