APIを利用した保存ツール

Laravel

初めに

プログラミング学習の成果物として今回のポートフォリオを制作いたしました。
採用面接およびアウトプットとしてこちらに投稿します。

経緯

勉強に必要となる本をできるだけ安く仕入れるために、楽天やAmazonなどのECサイトやメルカリなどのフリマサイトを見比べて中古本を購入するようにしています。

楽しくウィンドウショッピングしてはいるものの、面倒な作業の1つであった。それをプログラミングの技術を活かして、「無駄な作業をなくしたい!」ということが製作しようと思ったのがきっかけです。

ポートフォリオについて

更新の必要あり!!!!!!!!

 

開発環境

  • PHP 8.2.4
  • Laravel 10.10
  • Bootstrap 4.5
  • MySQL
  • Github
  • Visual Studio Code

実装機能

 

No機能      機能について
1Amazonへ検索PA-APIを利用して、商品情報を取得
2楽天へ検索楽天市場商品検索APIを利用して、商品情報を取得
3検索した商品の保存DBへ情報を格納することができる
4保存した商品の検索機能商品一覧から該当の商品を部分一致検索できる
5保存した商品の削除機能商品一覧から削除を実施することができる
6検索した商品の更新格納されている情報と比較して、変更点があれば更新される
7保存した商品の表示ログインIDに応じて、異なる商品が表示される
8ソート機能JavaScriptにより実装
並べ替えのドロップダウンを選択することで並べ替え可能

DB設計

※リレーションマップの画像を掲載するといい

更新の必要あり!!!!!!!!

セキュリティ対策

クロスサイトリクエストフォージェリ (CSRF)
今回はPHPフレームワークのLaravelを使用しました。

Laravelは、アプリケーションによって管理されているアクティブなユーザーセッションごとにCSRF「トークン」を自動的に生成します。このトークンは、認証済みユーザーが実際にアプリケーションへリクエストを行っているユーザーであることを確認するために使用されます。このトークンはユーザーのセッションに保存され、セッションが再生成されるたびに変更されるため、悪意のあるアプリケーションはこのトークンへアクセスできません。

と、Laravelの公式ページに記載があるので、

@CSRFのBladeディレクティブを使用して、非表示のトークン入力フィールドを生成しました。

デプロイ

エックスサーバーを使用してデプロイしております。
手順として以下のことを実施しました。

  • SSHでレンタルサーバーと紐づける
    セキュリティを考慮し、公開鍵を生成
  • レンタルサーバー内のPHPバージョンの設定
  • 生成した公開鍵をGithubに登録
  • mysqlの追加およびアクセス権の追加処理
  • gitよりcloneを実施
  • .envファイルの設定
  • 本番環境へ各種ファイルを配置
  • URL到達時の初期読み込み場所を指定する
    シンボリックリンクの扱いがわからなかったため、index.php内の記述を変更
  • .htaccessの設定
  • BREEZEインストールに伴い、nodeとnpmをインストール
  • VITEを利用可能にする。

工夫した点

  • コーディングの可読性の意識
    わかりやすくするため関数や変数名などはなるべく詳細な命名を実施。
    コメントアウトを細かく行うことで、挙動を理解できるようにした。
  • amazonの見た目に寄せるように努めた

ポートフォリオの課題点

  • デザイン面に苦手意識が強く、ユーザーが見やすいUIなどの意識もしていきたい
  • 以下、実装したい機能ある
    ワンクリックで複数のECサイトから情報を取得する
    Amazon API利用時、取得件数を増やす

まとめ

初めて環境構築からデプロイまで経験してみて、様々なエラーに直面し大変でしたが、解決していくことで自走力がつきました。