大幅変更について
ディレクトリー
api/ と front/ のディレクトリに分かれています。
※既存と同じようにアプリの起動はできません
現在)apiはDockerで立ち上げ、frontはローカルでサーバーを立ち上げます
本番インフラ
api → Heroku
現在、staging環境を設けている仮本番テストができます
front → Vercel
PR作成時からpreviewが作られ、そこでテストができます
RestからGraphqlへ
認証
deviseを利用するためRest形式で認証を行なっています
基本リクエスト
graphqlを使用しており、エンドポイントが1つになります
注意点
master.keyが消える
ディレクトリ構造がかなり異なり、ブランチを切り替えたときにmaster.keyが消える可能性があります
メモ書きをしておいてブランチ変更後にmaster.keyを再作成しましょう
自動コマンド
バック
rake graphql:schema:dump resolverかmutationを作成後、graphqlのschemaを作成する
https://github.com/naru20181117/ideee/blob/release/api/README.md
フロント 以下はpackage.jsonのscriptsに記載あり
next関連
yarn dev: ローカルサーバーを立ち上げるyarn build: ビルドするリンター
yarn lint: リントを実行するyarn format: prettierでフォーマットを揃えるyarn format-check: prettierでフォーマットチェックyarn type-check: TSの型などをチェック以下のコマンドで一度に確認ができるのでメモ
yarn lint & yarn lint-autofix & yarn format & yarn type-check
また、PRを作成前に実行することをおすすめします
graphql関連
yarn compile graphqlで作成したschemaファイルからReact hooksなどのファイルを作成するhttps://github.com/naru20181117/ideee/tree/release/front/README.md
graphiqlについて
graphqlのエンドポイントにアクセスすることができるツール(開発環境のみ)
参考:https://zenn.dev/monicle/articles/fda051519e9e57
ローカル環境で使用する場合は、http://localhost:3010/graphiqlにアクセス
本番環境でデータ確認する場合は、Vercelのpreview URLにアクセス
また、アドミン機能をサーバ側に実装済み
https://github.com/naru20181117/ideee/issues/1014
ideee % git checkout "release"
ideee % git pull origin release
サーバーサイドのセットアップを行います。
a. apiディレクトリ直下にmaster.keyファイルを作成し、ファイル内に現基盤のmaster.keyの中身をコピペしてください。
※ 新しく開発に参加された方で現基盤のmaster.keyがない場合は、なるさんに直接聞いてください。
api % touch config/master.key
b. 続いてデータベースの作成、マイグレーション、テストデータを作成します。以下railsコマンドを実行してください。
api % docker-compose run web bundle exec rails db:create # データベース作成
api % docker-compose run web bundle exec rails db:migrate # マイグレーション
api % docker-compose run web bundle exec rails db:seed_fu # テストデータ作成
おすすめワンライン rails db:create && rails db:migrate && rails db:seed_fu
rails db:seed_fu で作成されるユーザーでログインするのが最も早い。
rails c でコンソールに入り、 User.last.email などでemailを確認
そのemailとパスワード password でログイン。
c. GraphQLに関するrakeコマンドを実行します。(コミット追加時)
api % rake graphql:schema:dump
※ graphql:schema:dumpはRailsアプリケーション内で定義されたGraphQLスキーマ情報をファイルにエクスポートするためのサブタスクです。
[Class: GraphQL::RakeTask
— GraphQL Ruby API Documentation](<https://graphql-ruby.org/api-doc/1.9.3/GraphQL/RakeTask>)
フロントエンドのセットアップを行います。
frontディレクトリに移動し、以下yarnコマンドを実行します。
ideee % cd front
front % yarn dev

新基盤上でログインを行い、GraphQLの挙動を確認します。
新基盤のログイン
db:seed_fu でのテストデータ作成時に、api/db/fixtures/development/01_user.rb により作成された任意のuserのemail, passwordをログインページ (http://localhost:3000/user/sign_in) で入力し、ログインを行ってください。
Bearerから始まる値をコピーしてください。

GraphiQLはGraphQLサーバーに対してクエリを送信し、その結果を視覚的に表示することができる開発ツールです。
{
"Authorization": "Bearer {乱数}"
}