問題タブ [go-gin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - golang ginを使用して安らかなAPIへの認証モデルを作成するには?
RESTful API に対する認証モデルを作成したいと考えています。API トークンを使用したいと考えています。私は Web サービスで MVC を使用しており、このような auth.go コントローラーを作成しました。
今のところ機能していませんが、これを行うのに役立つ人がいますか、参照する例はありますか?
go - Gin ルーター: パス セグメントが既存のワイルドカードと競合しています
以下のものを提供するアプリを作りたいです。
- a.com => ブラウザーが /www/index.html を検索できるように、/www をブラウザーに提供します)
- a.com/js/mylib.js => /www/js/mylib.js をブラウザに提供する
- a.com/api/v1/disk => JSON を返す典型的な REST API
- a.com/api/v1/memory => 別の API
以下のようなコードを作りました。
コードを実行すると、パニックが発生します。
パニックになる理由はわかりますが、修正方法がわかりません。
私の頭に浮かんだのは、次の 2 つのことだけです。
- /api/v1 グループ パス以外を処理する NoRoute() 関数を使用します (正確にどのように実装するかはわかりません)。
- ミドルウェアを使用します。https://github.com/gin-gonic/contribに静的な中間がありますが、コードは Windows で動作しません ( https://github.com/gin-gonic/contrib/issues/91 )
前もって感謝します。
go - gin-gonic はリクエストを並行して処理しますか?
gin-gonic に基づいた go で記述された API サーバーがあります。予想される並列操作ではなく、要求を順次処理していると思わせる奇妙なことに気付きました。次のログ ファイルを検討してください。
ログをリアルタイムで見ると、最後の 3 つのエントリは 2 番目の呼び出しが終了するまで表示されません。これら 5 つの呼び出しは、互いに 5 ミリ秒以内に API に対して行われます。呼び出しは並行して処理される必要があります。これは、すべての呼び出しが 17:24:43 ではなく 17:24:40 までに完了する必要があることを意味します。IE: リクエストを処理するために接続が確立されたときに、サーバーが新しいスレッド/ゴルーチンを生成すること。そうでない場合、そのように機能するパッケージについて誰か提案がありますか。
これは gin-gonic を使用した最初のプロジェクトであり、設定する必要がある構成パラメーターがあるかどうか疑問に思っています。どんなアイデア/提案も大歓迎です。
go - go http template テンプレートで余分なデータが漏れる
私はginライブラリを使用して単純なcrud webappを作成しています.paramをチェックするルート設定がありid
、そのadd
aadmin-employee-add.html
をレンダリングする必要がある場合は、存在する場合はidを持つ従業員を返しますgetsadmin-employee-add.html
のエラーメッセージのテンプレートをレンダリングしている場合404 not found
その中に漏れました。ここにスナップショットがあります
admin-employee-add.html
エラーを作成しているルート
ginがリダイレクトしようとしているためにエラーが発生しているようです/add
->/add/
しかし、私はすでに/add/
ブラウザーでルートを使用しています。
ginのデバッグログ
ルートを変更してみまし/:id
たが、エラーが表示されました。
return
注: このエラーは、.txtの末尾にa を追加することで簡単に解決できますif id == "add"
。しかし、このパターンにより、コードがドライに見えなくなります。これはもっとhttprouter
問題のようです。