mirror of
https://github.com/kou029w/hasura-rest-hands-on.git
synced 2025-02-01 22:58:47 +00:00
Compare commits
2 commits
b751fcb654
...
f945065b01
Author | SHA1 | Date | |
---|---|---|---|
f945065b01 | |||
60a80caca7 |
19 changed files with 29 additions and 178 deletions
|
@ -1,3 +0,0 @@
|
|||
# [memo-demo.hasura.app](https://memo-demo.hasura.app)
|
||||
|
||||
https://cloud.hasura.io → "Git Deployment"
|
|
@ -1,6 +0,0 @@
|
|||
version: 3
|
||||
endpoint: https://memo-demo.hasura.app
|
||||
metadata_directory: metadata
|
||||
actions:
|
||||
kind: synchronous
|
||||
handler_webhook_baseurl: http://localhost:3000
|
|
@ -1,6 +0,0 @@
|
|||
actions: []
|
||||
custom_types:
|
||||
enums: []
|
||||
input_objects: []
|
||||
objects: []
|
||||
scalars: []
|
|
@ -1 +0,0 @@
|
|||
- collection: allowed-queries
|
|
@ -1,8 +0,0 @@
|
|||
- name: daily_reset
|
||||
webhook: https://memo-demo.hasura.app/api/rest/delete_pages
|
||||
schedule: 0 0 * * *
|
||||
include_in_metadata: true
|
||||
payload: {}
|
||||
headers:
|
||||
- value: "***"
|
||||
name: x-hasura-admin-secret
|
|
@ -1,35 +0,0 @@
|
|||
- name: default
|
||||
kind: postgres
|
||||
tables:
|
||||
- table:
|
||||
schema: public
|
||||
name: pages
|
||||
insert_permissions:
|
||||
- role: anonymous
|
||||
permission:
|
||||
check: {}
|
||||
columns:
|
||||
- id
|
||||
- content
|
||||
backend_only: false
|
||||
select_permissions:
|
||||
- role: anonymous
|
||||
permission:
|
||||
columns:
|
||||
- id
|
||||
- content
|
||||
filter: {}
|
||||
update_permissions:
|
||||
- role: anonymous
|
||||
permission:
|
||||
columns:
|
||||
- id
|
||||
- content
|
||||
filter: {}
|
||||
check: {}
|
||||
configuration:
|
||||
connection_info:
|
||||
use_prepared_statements: false
|
||||
database_url:
|
||||
from_env: HEROKU_DATABASE_URL
|
||||
isolation_level: read-committed
|
|
@ -1,9 +0,0 @@
|
|||
- name: allowed-queries
|
||||
definition:
|
||||
queries:
|
||||
- name: get page
|
||||
query: "query getPage($id: Int!) {\n page: pages_by_pk(id: $id) {\n id\n content\n }\n}"
|
||||
- name: put page
|
||||
query: "mutation putPage($id: Int, $content: jsonb!) {\n page: insert_pages_one(object: {id: $id, content: $content}, on_conflict: {constraint: pages_pkey, update_columns: content}) {\n id\n content\n }\n}"
|
||||
- name: delete all
|
||||
query: "mutation deleteAll($scheduled_time: String = \"\", $payload: jsonb = {}, $name: String = \"\", $id: String = \"\") {\n delete_pages(where: {id: {_is_null: false}, _or: {content: {_neq: {scheduled_time: $scheduled_time, payload: $payload, name: $name, id: $id}}}}) {\n affected_rows\n }\n}"
|
|
@ -1 +0,0 @@
|
|||
[]
|
|
@ -1,28 +0,0 @@
|
|||
- definition:
|
||||
query:
|
||||
collection_name: allowed-queries
|
||||
query_name: delete all
|
||||
url: delete_pages
|
||||
methods:
|
||||
- POST
|
||||
- DELETE
|
||||
name: delete all
|
||||
comment: null
|
||||
- definition:
|
||||
query:
|
||||
collection_name: allowed-queries
|
||||
query_name: get page
|
||||
url: page/:id
|
||||
methods:
|
||||
- GET
|
||||
name: get page
|
||||
comment: null
|
||||
- definition:
|
||||
query:
|
||||
collection_name: allowed-queries
|
||||
query_name: put page
|
||||
url: page/:id
|
||||
methods:
|
||||
- PUT
|
||||
name: put page
|
||||
comment: null
|
|
@ -1 +0,0 @@
|
|||
version: 3
|
|
@ -1,16 +0,0 @@
|
|||
SET check_function_bodies = false;
|
||||
CREATE TABLE public.pages (
|
||||
id integer NOT NULL,
|
||||
content jsonb NOT NULL
|
||||
);
|
||||
CREATE SEQUENCE public.pages_id_seq
|
||||
AS integer
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
ALTER SEQUENCE public.pages_id_seq OWNED BY public.pages.id;
|
||||
ALTER TABLE ONLY public.pages ALTER COLUMN id SET DEFAULT nextval('public.pages_id_seq'::regclass);
|
||||
ALTER TABLE ONLY public.pages
|
||||
ADD CONSTRAINT pages_pkey PRIMARY KEY (id);
|
|
@ -19,7 +19,6 @@
|
|||
構成としては下記の通りです。
|
||||
|
||||
- [Hasura Cloud](https://cloud.hasura.io/) - すぐに利用可能なHasuraの環境
|
||||
- [Heroku Postgres](https://jp.heroku.com/postgres) - すぐに利用可能なデータベース
|
||||
- [StackBlitz](https://stackblitz.com/) (あるいは、[CodeSandbox](https://codesandbox.io/)) - フロントエンドのオンライン開発環境
|
||||
- [Vue 3](https://vuejs.org/) - プログレッシブWebフレームワーク
|
||||
- [Quill](https://quilljs.com/) - リッチテキストエディター
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
# 目次
|
||||
|
||||
- [Hasuraで作るREST API](README.md)
|
||||
- [事前準備](preparation.md)
|
||||
- [Herokuのアカウント登録](signup-heroku.md)
|
||||
- [Hasura Cloudのアカウント登録](signup-hasura-cloud.md)
|
||||
- [Hasura Cloudアカウントの登録](signup-hasura-cloud.md)
|
||||
- [Hasura Cloudプロジェクトの作成](create-project.md)
|
||||
- [Heroku Postgresへの接続](create-heroku-postgres.md)
|
||||
- [新しいデータベースへの接続](connect-new-database.md)
|
||||
- [テーブルの作成](create-table.md)
|
||||
- [GraphQLによるデータの挿入と取得](insert-and-select.md)
|
||||
- [REST APIエンドポイントの作成](create-rest-endpoint.md)
|
||||
|
|
26
docs/connect-new-database.md
Normal file
26
docs/connect-new-database.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
# 新しいデータベースへの接続
|
||||
|
||||
Hasuraでデータの保存と検索を実現するためにデータベースを接続します。
|
||||
|
||||
このハンズオンでは、データベースとしてNeonを利用します。
|
||||
|
||||
Hasura Cloudのプロジェクトの[Launch Console]ボタンからHasuraのコンソール画面にアクセスして、データベースへの接続を行うことが可能です。
|
||||
|
||||
まず、コンソール > [Data Manager] にアクセスします。
|
||||
|
||||
![](https://lh3.googleusercontent.com/pw/AMWts8CoQ24HeTDkWEXgyNL2hpnvfFfA5yUzsZBMBhIxQ23NNurYBeRQHN6O0i0iNB9CC6dIIh6BvbEKXnJRtMFKjx9A_-Rphry-JdXqKT7RZnYjSVHO9TTPmFDxeil5OfR_TGBDju794zNlrlWLYjtza6pf=w1280)
|
||||
|
||||
[Create New Database]を選択し、データベース作成パネルを表示します。
|
||||
|
||||
![](https://lh3.googleusercontent.com/pw/AMWts8DiTjBZx1rkcFCiBo0CO1fd9IBBgZUeROvmFREer-CGwqGRNtHv-1QsTp87FbezI_t0IQqra_VVUvQKga5wW0FKXxHupWj-LYyZBCbFDhmhg_IkaggyfQL17tjbF4OqFiDFsnGKMPrwgjP8B14E7K3i=w1280)
|
||||
|
||||
[Connect Neon Database]ボタンを選択し、データベースを新たに作成します。
|
||||
|
||||
一連の手順でデータベースを作成すると、Hasuraは自動的にデータベースへの接続を開始します。
|
||||
しばらく待つと、データベースへの接続が完了します。
|
||||
|
||||
これであなたはHasuraを利用可能になりました 🎉
|
||||
|
||||
![](https://lh3.googleusercontent.com/pw/AMWts8DDazdAGQGOMIDPSQzVcNZeEUVtDT9gLN8qgXxQzoZ-rPH2hwlIO3kXBXkzYKvtmkFcUmsQNWhmN2eer_PSQxXTOVDPdCvUX3Q5upxg5qDEcMIhjSspfqHRh0f9M_-edXvmuKm6HS-RnlPN2MIynXQA=w1280)
|
||||
|
||||
それでは実際にHasuraを使ってみましょう!
|
|
@ -1,31 +0,0 @@
|
|||
# Heroku Postgresへの接続
|
||||
|
||||
Hasuraでデータの保存と検索を実現するためにデータベースを接続します。
|
||||
|
||||
このハンズオンでは、データベースとしてHeroku Postgresを利用します。
|
||||
|
||||
Hasura Cloudのプロジェクトの[Launch Console]ボタンからHasuraのコンソール画面にアクセスして、Heroku Postgresへの接続を行うことが可能です。
|
||||
|
||||
まず、コンソール > [Data Manager] にアクセスします。
|
||||
|
||||
![](https://lh3.googleusercontent.com/ekEWHMTkf2qak5oItkay-scmzeiwiaUtNXBvBdCSVSJ3qG25oVc8O_25S4SEWZskj6NqWSfW2eENeEy3iJ94mTw1SmhnL7tONbS_qHHZsgI4l_6sEIdmMnXTEpmF34-aDS2I3Pi7EQ=w1280)
|
||||
|
||||
[Create Heroku Database]を選択し、データベース作成パネルを表示します。
|
||||
|
||||
![](https://lh3.googleusercontent.com/46sywF2Hl5GGAEsXhAkhhni4_NHcB-kcHiqqJNkZs0HS7zvFy9FZmmWEGLtP-i6F-msLnuJlKPFst8j8_QTCnTcDi1B5diKByqOVDAeuZ_PL1Fo_pDl_DLOBscL-O8ucqZA05_xyjA=w1280)
|
||||
|
||||
[Create Database]ボタンを選択し、Heroku Postgresデータベースを新たに作成します。Herokuとの連携を行う際に、初回アクセス時にはHerokuの承認画面が表示されます。[Allow (許諾)]を選択するとHerokuとの連携が完了します。
|
||||
|
||||
![](https://lh3.googleusercontent.com/RngvddZ704jKqqPfxGiSEdEkBemMwrz3jApRJQhRqL2Cr0MoV-SxVljdLaglM0XFwkcnIpWFD9zVyUtn9n55LGKG78gJPec6HRrWXrcLbNNnHztycmF-sphYYBkHaRT7Y87nzihdNg=w1280)
|
||||
|
||||
一連の手順でHeroku Postgresデータベースを作成すると、Hasuraは自動的にデータベースへの接続を開始します。
|
||||
|
||||
![](https://lh3.googleusercontent.com/-0FkvEXZO0FQz0YvrNFdh8JmAMZPbIpaIRygkE4F8xb4Z3ZLMRH9y5pny48-bj-i2nnhbDuqcPKokbznD7X_APL-MkjDeHaxQsJjFyGEY6AxvMBsHwfNOjxPdjQA6S3dGrW1Cz4o0g=w1280)
|
||||
|
||||
しばらく待つと、データベースへの接続が完了します。
|
||||
|
||||
これであなたはHasuraを利用可能になりました 🎉
|
||||
|
||||
![](https://lh3.googleusercontent.com/vJU-gDZJwSNJYAaoq4qu4lAnxhNYGE70rPxmtGct_GyPT9oH0FoZ8_2O8bcI9ocaWHaJsE0Rqv2WHZzO6Z0yGuMkaCtMYjdIKTHW2aREaCYid73GlT6FWLZH9JIQPp_P9QOez0EOBw=w1280)
|
||||
|
||||
それでは実際にHasuraを使ってみましょう!
|
|
@ -25,4 +25,4 @@ Hasuraを利用するためにHasura Cloudのプロジェクトを作成しま
|
|||
|
||||
![](https://lh3.googleusercontent.com/LL6dz4np-O19_runPMbCD5-d3kYc1_QUcc1bJif4Yx7dNr16SY4k6037kV82aqg1FrcYff3QGOFTqzyh9ReYyp-j43EtGJercr7dKxdBxcd1nDzPm9bbWFgJOYjhwNDUsGRWNV2d2g=w1280)
|
||||
|
||||
プロジェクトの[Launch Console]ボタンからHasuraのコンソール画面にアクセスして、Heroku Postgresへの接続を行いましょう。
|
||||
プロジェクトの[Launch Console]ボタンからHasuraのコンソール画面にアクセスして、データベースへの接続を行いましょう。
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
# 事前準備
|
||||
|
||||
まず、事前準備としてあらかじめ下記のアカウントに登録しておきましょう。
|
||||
|
||||
- [Herokuのアカウント登録](signup-heroku.md)
|
||||
- [Hasura Cloudのアカウント登録](signup-hasura-cloud.md)
|
||||
|
||||
もし、すでにアカウント登録済みであれば、[Hasura Cloudプロジェクトの作成の章](create-project.md)まで読み飛ばしてください。
|
|
@ -1,19 +0,0 @@
|
|||
# Herokuのアカウント登録
|
||||
|
||||
[Herokuの新規登録](https://signup.heroku.com/jp)からアカウントを作成します。
|
||||
|
||||
アカウントに必要な項目を入力します。
|
||||
|
||||
![](https://lh3.googleusercontent.com/Wa1OrwezKqGADEq-TC1ErAMWRKfrKxr1FWqLXuwPyn2GiKQlIbvmA6tCbsPGA0NWwEwKePo2_574LPl7fdwX89mDE8gltPCBRPFQ24GSdpI4tXQsDU5mfk1o1oqMWrmZPxCOJkm64g=w1280)
|
||||
|
||||
入力したメールアドレスに登録用のメールが届くので確認します。
|
||||
|
||||
![](https://lh3.googleusercontent.com/c4IrmzaCjk-SuJ4w9t_7esDEdOT1CGj7gLcWPBZxswSbbmvGyOgPz2rUzPlpkyGqGncId9bMHqDl0hya99s3QbEuWbi9CFMpP04A9Vi8txzdzhNpJxI0o2nxEY9SIcIWVmc1Ncqjrw=w1280)
|
||||
|
||||
メールに記載のリンクにアクセスし、パスワードを設定します。
|
||||
|
||||
![](https://lh3.googleusercontent.com/oGniSBYOCGH3Zb56034x_tzQTGWuZF_81PkEEX68Xk5TCHYs_LmyyS0uZAgkBr5RHdZZVSpbxsZWlgyXeqfEp5NTFb4Ry3EV4I-Wxp07TK-9kpvmtuWLYddkJx4mPmEfuj283RZtJA=w1280)
|
||||
|
||||
Herokuにようこそ!
|
||||
|
||||
![](https://lh3.googleusercontent.com/klQnC0-tt3v_lcSGRSa_S6L1PvOxLl_e-BGhL75Lmi0Tei-zqJMtvab1GfcdhuwNqUcOqPjvsWUtzQLNMK_cGSrznFmLtFemCLfUnAQRHoKqdvpIsyshwDi7plwfGHM1y8R0gTyy-Q=w1280)
|
Loading…
Add table
Reference in a new issue