Code Monkey home page Code Monkey logo

my_portfolio_api's People

Contributors

t-tazy avatar

Watchers

 avatar

my_portfolio_api's Issues

ユーザー登録機能追加

登録情報として以下を受け取る

  • ユーザー名
  • パスワード(RDBMS保存時はハッシュ化する)
  • ロール

エクササイズ関連同様、handler, service, storeパッケージに機能を分割する
ref #5

ログインエンドポイント実装

POST /loginでユーザー名とパスワードを含んだリクエストを受け取る。
認証に成功した場合アクセストークンを発行する。

  • アクセストークンの有効時間は30分とする

JWTを用いた認証・認可機能を実装

次の機能を実装する。

  • ログイン機能
  • アクセストークンに含まれる識別情報を利用する機能

アクセストークンの管理にはRedisを用いる。JWTのIDをキー、ユーザーIDを値として保存する。

修正

  • r.Clone() → r.WithContext()
  • server.goのselect文変更
  • entityにrequestおよびresponseの型定義

HTTPハンドラーの実装が密である

RDBMSを使った永続化を行うようになり、HTTPハンドラーの実装には種類の異なる複数の処理が含まれている。

  • HTTPリクエストから必要な情報を読み取る
  • HTTPレスポンスを構築しレスポンスを返す
  • アプリケーションロジック・ビジネスロジックを実行する
  • storeパッケージを呼び出して永続化処理を行う

これらが強く結合しているとテストコードの作成が困難であるため、責務を複数の実装に分割することでそれぞれの責務を疎結合にする。次の3つのパッケージに分ける。

  • HTTPリクエストとHTTPレスポンスの処理を行うhandlerパッケージ
  • 永続化操作を行うstoreパッケージ
  • 永続化操作とアプリケーションロジックやビジネスロジックの実装を組み合わせて期待される挙動を実装するserviceパッケージ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.