Laravelを使ってREST APIを作ってみるお話 (インストール編)

  • このエントリーをはてなブックマークに追加

今回のゴール

今回はComposerからLaravelをインストールし、webサーバーで表示され、データベースの構築が行えるまで。

(REST APIなので本当はwebサーバーで表示される必要はないですが…)

Laravelのインストール

以前のエントリーでPHPとLaravelをWindowsにインストールしているので、そこからLaravelをインストール作業を来ないます。

インストール前に

Windows版のPHPを入れたのですが、php.iniの設定を一部変更する必要があります。

これを記述しておいてください
また、実際のサーバーとWindowsのPHPのバージョンはできるだけ合わせておいた方が安全です。

インストールを行う

インストールしたい場所でターミナルを開き

と入力すると自動的にlaravel-testというフォルダを生成され、Laravelをインストールしてくれます。

その後は[.env]ファイルが生成されていることを確認し、作成されたフォルダに入り、

をターミナル上から入力してください。

もし[.env]ファイルがない場合は[.env.exsample]を[.env]にコピーしてください。

フォルダのパーミッションを確認する

「/storage/logs」「/storage/framework/」内の仮想フォルダを確認し、apacheやnginxが書き込める権限に変更します。

webサーバーにアップし、確認する

https://xxxxxxxxx.xxxx/laravel-test/public/


上記の画面が表示されればOKです。お疲れ様でした。

 

データベースの設定を行う。

Laravelのマイグレーションを使用してテーブルなどを設定します。

環境設定にデータベース接続情報を記述する

[.env]にある項目にデータベース接続情報を記述する

【注意】基本的に.envはサーバーに保管するのでGitやSubversionなどのファイル管理に含むかどうか気をつけましょう

元々のマイグレーションファイルは不要なので削除します。

マイグレーションファイルの作成

「php artisan make:migration create_users_table」と入力すると「database/migrations」に新たにマイグレーションファイルが作成されます。

マイグレーションファイルの編集

up()関数でテーブルのクリエイト、down()関数でテーブルの削除となるので、テーブルのフィールドを変更します。

に変更しました。
なんとなく感覚でわかるかと思いますが、string = varchar型で、timestampsと記述すると自動的に[create_at][updated_at]をtimesampで作成してくれます。
これをテーブルごとに作成し、描きのコマンドで実行すると

という感じになります。
記述が間違っているとエラーになりますのでご注意ください。

phpMyAdminで見てみると

なんと簡単に作成できました。

フィールドを追加する場合

運用している上でフィールドを追加したい場合がありますが、その場合もマイグレーションで作成できます。

ファイル名はわかりやすくしています。
すると先ほどと同様にマイグレーションファイルが生成されるので、以下のように編集を行います。

up()関数でnameの後ろにemailを追加しています。
ちなみにdown()関数にはemailを削除する記述をしています。

これを同様に実行すると

となり、


nameが追加されます。

ちなみに追加したものを戻したい場合は

と「:rollback」をつけることで作成したファイルのdown()関数を実行します。
少しややこしいですが

  1. 2022_03_11_081637_create_users_table
  2. 2022_03_11_084714_add_users_table_add_coloumns
の順でマイグレーションを行った場合、ロールバックを行うと、まず「2」のロールバックが行われ、次にrollbackを行うと1のロールバックが行われます。

例の場合はテーブル作成→カラム追加となるので、ロールバックを行うと「カラム削除→テーブル削除」となります。(もちろんdown()関数にきちんと処理を書いている必要がありますが)

 

最後に

本当はxamppなどの説明を行った方がよかったかなと思いますが、とりあえずComposerからインストールして色々とできるところまで進めました。

テーブル設計は本当に楽にできるなと思う反面、レンタルサーバーなどでどこまで自由に作れるのかが少し心配な側面があります。

次回はいよいよREST APIとして実装できればいいなと思います。

 

執筆者:松本[ エンジニア ]

関連記事

プログラミング

SharePoint REST APIを使用してリストの情報を取得し、headerにナビを作る

SharePointで作成したリストの情報をREST APIを使用して取得してみましょう。 今回は、APIで取得した情報を、headerにリンクとして差し込んでみます。サイト全体共通のナビでも、リストを使用すると、一か所で管理できるので便利です。 目次1 前提条件2 1.REST APIで情報を取得2.1 REST APIのURL2.2 データを取得する処理3 2.取得した情報をheaderに表示 前提条件 SharePoint Online モダンUI カスタムJSが使用で […]

WordPress

WordPressで権限やユーザーごとに管理画面のサイドメニュー表示を切り分ける

デフォルトだといろいろな項目が表示されているWordPressの管理画面のサイドメニュー。 慣れていない人にはわかりづらいですよね。 また、権限によってデフォルトで非表示にしてくれたりもしますが、この部分は見せたくないな…ということも多いと思います。 今回はWordPressで権限やユーザーごとにサイドメニューの表示を変更する方法をご紹介します。 目次1 権限の種類について2 function.phpに記述する2.1 サイドメニューの非表示用のコード2.2 権限ごとに振り分け […]

プログラミング

jQuery+PHPで大容量ファイルを分割アップロードするお話

ファイルのアップロードを行う際に注意しないといけないのが「アップロード容量」と「タイムアウト」です。 どちらもサーバーの設定に関わるところでレンタルサーバーでは対処しきれないところもあり、大容量にするとそれだけアップロードに時間がかかりタイムアウトが発生しやすくなります。 そこでフロント側で分割してファイルをアップし、バックエンド側で受け取った後に結合するようにするとよいでしょう 注意すべき点として通常のPOSTでの送信ではないため、あらかじめそこら辺を考慮した処理が必要とな […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。