リトライ
- 新しいReactプロジェクトをgraphql-clientという名前で生成する
$ yarn create-react-app graphql-client --template typescript
- 作成アプリディレクトリへ移動後
$ yarn add @apollo/client graphql
- GQL 関連のインストール
$ yarn add graphql$ yarn add @graphql-codegen/cli
- gql関連のセットアップ
$ yarn graphql-codegen init
? What type of application are you building? Application built with React
? Where is your schema?: (path or url) http://localhost:8080
? Where are your operations and fragments?: src/graphql/schema.graphqls
? Pick plugins: TypeScript (required by other typescript plugins), TypeScript Operations (operations and fragments),
TypeScript React Apollo (typed components and HOCs)
? Where to write the output: src/generated/graphql.tsx
? Do you want to generate an introspection file? Yes
? How to name the config file? codegen.yml
? What script in package.json should run the codegen? generate
- codegen.ymlが生成されるが、以下のように編集
overwrite: true schema: "src/graphql/*.graphqls" generates: src/generated/graphql.tsx: plugins: - "typescript" - "typescript-operations" - "typescript-react-apollo" # - "typescript-graphql-request" ./graphql.schema.json: plugins: - "introspection"- codegen.yml で指定したように、src/graphql 内に.graphqls ファイルを設置
$ yarn run generate- src/generated フォルダ内にコードが自動生成される
7/25
$ yarn global add spectaql
7/31
$ cd /05pj$ yarn global add gql-generator$ yarn global add graphql-code-generator$ yarn gqlg --schemaFilePath ./src/graphql/*.graphql --destDirPath ./src/graphql
pandas
read_csv
import pandas as pd
df = pd.read_csv('./sample.csv')
print(df)
print(df.columns)
オプション
・,encoding="sjis" #文字コードの指定が可能
・header=2 #2行目より上は無視、2行目がヘッダーに(Noneが指定可能)
・index_col=0 #indexとして使いたい列番号(0~)を指定
・usecols=[1, 3] #特定の列だけ読み込む
read_excel
import pandas as pd
df = pd.read_excel('./sample.xlsx')
print(df)
オプション
・ほぼread_csvと一緒
・sheet_name='sheet2' #シート名(もしくは番号)を指定可能
ローカルDynamoDB
任意場所にyamlファイル作成後
cd C:\dir\to\.yaml
docker-compose up
デフォのyamlの内容なら、ポート8000で立ち上がる。
yarn graphql-codegenでスキーマファースト
■ フロントエンド側
- yarn add graphql
- yarn add @graphql-codegen/cli
- codegen.yamlをreactのプロジェクトルートに準備
-
overwrite: true schema: "../api/graph/*.graphqls" generates: # ./graphql/graphql.tsx: # plugins: # - "typescript" # - "typescript-operations" # - "typescript-react-apollo" # ./graphql.schema.json: # plugins: # - "introspection" ./src/api/models.ts: - typescript
- typescript-operations
- typescript-graphql-request
-
実行時の入力と実行結果
k@DESKTOP-VDG6H3D:~/02pj/web$ yarn graphql-codegen init
yarn run v1.22.17
$ /home/k/02pj/web/node_modules/.bin/graphql-codegen init
(node:1053) ExperimentalWarning: stream/web is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
Welcome to GraphQL Code Generator!
Answer few questions and we will setup everything for you.
? What type of application are you building? Application built with React
? Where is your schema?: (path or url) http://localhost:8080
? Where are your operations and fragments?: ./src/*.graphq
? Pick plugins: TypeScript (required by other typescript plugins), TypeScript Operations (operations and fragments), Typ
eScript React Apollo (typed components and HOCs)
? Where to write the output: ./graphql/graphql.tsx
? Do you want to generate an introspection file? Yes
? How to name the config file? codegen.yml
? What script in package.json should run the codegen? generate
Fetching latest versions of selected plugins...
Config file generated at codegen.yml
$ npm install
To install the plugins.
$ npm run generate
To run GraphQL Code Generator.
Done in 433.59s.
https://logmi.jp/tech/articles/324574
「GraphQL」を使うときは必ずスキーマ駆動開発を使う
いろいろな“つらみ”が多いので、GraphQLを利用する場合は、必ずスキーマ駆動開発を使っておきましょうという教訓です。openapi.jsonやgraphql.schemaなどのスキーマ定義を、事前にフロントエンドとバックエンドの間で、要するに開発者と利用者の間で合意を取ってからAPIを作りましょうというのがこのSchema Driven Developmentです。
すでに完成後のインターフェイスがわかっているので、だいたいのライブラリを使えばモックサーバーもすぐに立てられます。フロントエンド側の開発がバックエンドのサーバーのデータの出来上がりを待たなくても、データがすでに完成した状態で開発を進められます。
また、開発における手戻りの発生リスクもとても小さいので、教訓は「スキーマ駆動開発はぜひ使っていきましょう」になります。そもそもGraphQLは本当に必要なのかも検討する必要があるかなと思います。GraphQLは仕組み上、かなりしっかりとした設計がないとあまりメリットがないかなと思っています。
React Material-UI
https://mui.com/material-ui/getting-started/installation/
" width="20" height="20">
目標を一つに定めることは、集中力を高め、成果を出しやすくするために重要です。以下のステップを試してみて、目標を定める手助けをすることができます。
- 自己評価を行う: 自分の関心や価値観について考え、何が本当に重要で意味のあることなのかを見極めましょう。自分の強みや短所を把握し、それを活かせる目標を考えてみましょう。
- 優先順位を設定する: 考えている目標の中で、どれが最も重要で達成したいものかを選びましょう。それぞれの目標について、なぜそれが重要なのか、どのような影響をもたらすのかを考えて比較しましょう。
- 具体的かつ実現可能な目標を設定する: 目標を抽象的ではなく、具体的かつ明確に設定することが重要です。また、自分が実際に達成できる範囲内であることも考慮しましょう。目標があまりにも大きすぎたり、現実的ではない場合は、達成感を得づらくなります。
- ステップを設定する: 目標を達成するために必要なステップや行動計画を立てましょう。大きな目標を小さなタスクに分割し、進捗状況を確認できるようにします。具体的なスケジュールや期限を設定し、目標を追いかけるための計画を作成しましょう。
- 集中する: 目標に向けて取り組む際には、集中力を高めることが重要です。時間管理や優先順位の設定、生産的な環境の整備など、自分が集中しやすい状態を整えることが大切です。
目標を一つに絞ることは、効果的な成果を出すために役立ちます。ただし、複数の興味や目標を持つことは自然なことですので、必ずしも全てを捨てる必要はありません。重要度や優先度に応じて、適切なタイ
休みをグダグダに過ごしてしまったことを気にされているようですね。休みを無駄に過ごしてしまったと感じることはありますが、心配する必要はありません。人々は時にはリラックスや休息を必要としますし、自分自身をリセットする時間も必要です。
ただし、もし休みの時間をより充実させる方法を見つけたいのであれば、いくつかのアイデアを提案します。
- 目標を設定する:休みの間に達成したいことややりたいことを明確にしましょう。それに向けて計画を立てることで、より充実感を得ることができます。
- 趣味や興味を追求する:自分の興味や趣味に没頭する時間を作ってみてください。読書、絵画、音楽、スポーツなど、あなたが楽しいと感じる活動を見つけましょう。
- 外出する:自然に触れたり、新しい場所を探索したりすることで気分転換になります。近所の公園を散歩したり、友人と会っておしゃべりしたりすることも良い方法です。
- インスピレーションを求める:映画や美術展、音楽コンサートなど、他の人の創造性や才能に触れることで自身のインスピレーションが湧くかもしれません。
- 自己ケアをする:リラックスしたり、身体を健康に保ったりするための活動に時間を費やしてみましょう。マッサージ、ヨガ、瞑想、健康的な食事などが含まれます。
重要なのは、過ごした時間に後悔するのではなく、次の休みを有意義に過ごすための学びとして受け入れることです。自分自身を過度に責めず、前向きになるよう心がけましょう。