Compare commits

...

2 commits

Author SHA1 Message Date
f945065b01 delete metadata 2023-03-07 17:00:25 +09:00
60a80caca7 goodbye heroku 2023-03-07 16:51:53 +09:00
19 changed files with 29 additions and 178 deletions

View file

@ -1,3 +0,0 @@
# [memo-demo.hasura.app](https://memo-demo.hasura.app)
https://cloud.hasura.io → "Git Deployment"

View file

@ -1,6 +0,0 @@
version: 3
endpoint: https://memo-demo.hasura.app
metadata_directory: metadata
actions:
kind: synchronous
handler_webhook_baseurl: http://localhost:3000

View file

@ -1,6 +0,0 @@
actions: []
custom_types:
enums: []
input_objects: []
objects: []
scalars: []

View file

@ -1 +0,0 @@
- collection: allowed-queries

View file

@ -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

View file

@ -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

View file

@ -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}"

View file

@ -1 +0,0 @@
[]

View file

@ -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

View file

@ -1 +0,0 @@
version: 3

View file

@ -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);

View file

@ -19,7 +19,6 @@
構成としては下記の通りです。 構成としては下記の通りです。
- [Hasura Cloud](https://cloud.hasura.io/) - すぐに利用可能なHasuraの環境 - [Hasura Cloud](https://cloud.hasura.io/) - すぐに利用可能なHasuraの環境
- [Heroku Postgres](https://jp.heroku.com/postgres) - すぐに利用可能なデータベース
- [StackBlitz](https://stackblitz.com/) (あるいは、[CodeSandbox](https://codesandbox.io/)) - フロントエンドのオンライン開発環境 - [StackBlitz](https://stackblitz.com/) (あるいは、[CodeSandbox](https://codesandbox.io/)) - フロントエンドのオンライン開発環境
- [Vue 3](https://vuejs.org/) - プログレッシブWebフレームワーク - [Vue 3](https://vuejs.org/) - プログレッシブWebフレームワーク
- [Quill](https://quilljs.com/) - リッチテキストエディター - [Quill](https://quilljs.com/) - リッチテキストエディター

View file

@ -1,11 +1,9 @@
# 目次 # 目次
- [Hasuraで作るREST API](README.md) - [Hasuraで作るREST API](README.md)
- [事前準備](preparation.md) - [Hasura Cloudアカウントの登録](signup-hasura-cloud.md)
- [Herokuのアカウント登録](signup-heroku.md)
- [Hasura Cloudのアカウント登録](signup-hasura-cloud.md)
- [Hasura Cloudプロジェクトの作成](create-project.md) - [Hasura Cloudプロジェクトの作成](create-project.md)
- [Heroku Postgresへの接続](create-heroku-postgres.md) - [新しいデータベースへの接続](connect-new-database.md)
- [テーブルの作成](create-table.md) - [テーブルの作成](create-table.md)
- [GraphQLによるデータの挿入と取得](insert-and-select.md) - [GraphQLによるデータの挿入と取得](insert-and-select.md)
- [REST APIエンドポイントの作成](create-rest-endpoint.md) - [REST APIエンドポイントの作成](create-rest-endpoint.md)

View 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を使ってみましょう!

View file

@ -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を使ってみましょう!

View file

@ -25,4 +25,4 @@ Hasuraを利用するためにHasura Cloudのプロジェクトを作成しま
![](https://lh3.googleusercontent.com/LL6dz4np-O19_runPMbCD5-d3kYc1_QUcc1bJif4Yx7dNr16SY4k6037kV82aqg1FrcYff3QGOFTqzyh9ReYyp-j43EtGJercr7dKxdBxcd1nDzPm9bbWFgJOYjhwNDUsGRWNV2d2g=w1280) ![](https://lh3.googleusercontent.com/LL6dz4np-O19_runPMbCD5-d3kYc1_QUcc1bJif4Yx7dNr16SY4k6037kV82aqg1FrcYff3QGOFTqzyh9ReYyp-j43EtGJercr7dKxdBxcd1nDzPm9bbWFgJOYjhwNDUsGRWNV2d2g=w1280)
プロジェクトの[Launch Console]ボタンからHasuraのコンソール画面にアクセスして、Heroku Postgresへの接続を行いましょう。 プロジェクトの[Launch Console]ボタンからHasuraのコンソール画面にアクセスして、データベースへの接続を行いましょう。

View file

@ -1,8 +0,0 @@
# 事前準備
まず、事前準備としてあらかじめ下記のアカウントに登録しておきましょう。
- [Herokuのアカウント登録](signup-heroku.md)
- [Hasura Cloudのアカウント登録](signup-hasura-cloud.md)
もし、すでにアカウント登録済みであれば、[Hasura Cloudプロジェクトの作成の章](create-project.md)まで読み飛ばしてください。

View file

@ -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)