2021-07-19 22:31:02 +09:00
---
2022-08-01 17:35:32 +09:00
title: Hasura 概論
2021-07-19 22:31:02 +09:00
marp: true
paginate: true
---
# Hasura 概論
WebDINO Japan エンジニア
[渡邉浩平 ](https://github.com/kou029w )
![w:200 ](https://github.com/kou029w.png )
---
2021-07-20 14:58:37 +09:00
## Hasura
2022-03-07 17:39:11 +09:00
![w:4.5em ](https://cdnjs.cloudflare.com/ajax/libs/simple-icons/5.7.0/hasura.svg )
2022-02-25 17:24:19 +09:00
https://hasura.io
2021-07-20 14:58:37 +09:00
2022-03-07 16:35:56 +09:00
すばやく構築できる GraphQL サーバー
接続したデータベースを\
GraphQL API として提供できる
2021-07-20 14:58:37 +09:00
2022-03-07 17:39:11 +09:00
![bg fit right:45% ](https://ptuml.hackmd.io/svg/JOvB2i9044JtVOg-G2uW8X42YWJ3a1DqneRucKzwkXVUFgEek2lg5OzgYvAeXGSMNeoZPoZtQyma532acFmiAJ2g6CC-PsnsUAHYGhZ1Wr2UNO_EM9xmgUkW8wM92jV9wFels3R_u1NVmbh_XATnEECmtTWhj1mlzHUi )
2021-07-20 14:58:37 +09:00
---
## GraphQL
2022-02-25 17:24:19 +09:00
https://graphql.org
2021-07-20 14:58:37 +09:00
2022-02-25 17:24:19 +09:00
API の問い合わせ言語
2021-07-20 14:58:37 +09:00
2022-02-25 17:24:19 +09:00
特徴
2021-07-20 16:37:46 +09:00
2022-02-25 17:24:19 +09:00
- 単一リクエスト
- 型システム
- 便利なツール
2021-07-20 14:58:37 +09:00
2023-03-01 15:35:31 +09:00
![bg right:60% State of JS 2020 ](./assets/datalayer-experience-ranking.png )
データ層分野
2022-03-07 15:51:26 +09:00
<!-- _footer: 図の出典: "State of JS 2020" データ層 https://2020.stateofjs.com/ja - JP/technologies/datalayer/ -->
2021-07-20 14:58:37 +09:00
---
2021-07-21 09:10:18 +09:00
## GraphQL と Hasura
2021-07-20 14:58:37 +09:00
2022-03-07 16:35:56 +09:00
GraphQL サーバーは SQL 等のデータソースのクエリーを発行しなければならない
2022-03-07 17:39:11 +09:00
その実装は複雑になりうる
2021-07-20 14:58:37 +09:00
2022-03-07 16:35:56 +09:00
Hasura を使うことで GraphQL API の構築・運用をすばやく行える
2022-03-07 17:39:11 +09:00
開発者はデータを扱うアプリケーションの開発に集中できる
2021-07-20 14:58:37 +09:00
---
2022-03-07 17:39:11 +09:00
## REST と Hasura
GraphQL だけでなく REST API の中継サーバーとして使うこともできる
2021-07-20 14:58:37 +09:00
2022-08-17 16:39:19 +09:00
[REST Connectors for Actions (2.1 の新機能) ](https://hasura.io/docs/latest/actions/rest-connectors/ )
2022-03-07 16:44:29 +09:00
REST API を GraphQL API として提供できる機能
2021-07-20 14:58:37 +09:00
2022-08-17 16:39:19 +09:00
[RESTified GraphQL Endpoints (2.0 の新機能) ](https://hasura.io/docs/latest/api-reference/restified/ )
2022-03-07 16:44:29 +09:00
GraphQL API を REST API として提供できる機能
2021-07-20 14:58:37 +09:00
2022-03-07 17:39:11 +09:00
Hasura を使うことで GraphQL API・REST API の構築・運用をすばやく行える
開発者はデータを扱うアプリケーションの開発に集中できる
2022-03-07 15:51:26 +09:00
2021-07-20 14:58:37 +09:00
---
2022-02-25 17:24:19 +09:00
# ハンズオン
2021-07-20 14:58:37 +09:00
---
2022-03-07 17:39:11 +09:00
## Hasura で作る REST API
2022-03-07 15:51:26 +09:00
2022-03-07 18:10:28 +09:00
https://kou029w.github.io/hasura-rest-hands-on/
2022-03-07 15:51:26 +09:00
< iframe
2022-08-01 21:20:39 +09:00
src="https://stackblitz.com/github/kou029w/hasura-rest-hands-on/tree/main/frontend?embed=1& view=preview& terminal=dev& file=src/App.vue"
2022-03-07 15:51:26 +09:00
style="
width: 100%;
height: 500px;
border: 0;
border-radius: 4px;
overflow: hidden;
"
title="vue3-hasura-rest"
>< / iframe >
2021-07-20 14:58:37 +09:00
---
## ![h:0.8em][github.svg] フィードバック
[このスライドを編集する ](https://github.com/kou029w/intro-to-hasura/edit/main/README.md ) / [問題を報告する ](https://github.com/kou029w/intro-to-hasura/issues/new )
[github.svg]: https://cdnjs.cloudflare.com/ajax/libs/simple-icons/5.7.0/github.svg
2023-03-01 15:35:31 +09:00
---
< script >
window.addEventListener("DOMContentLoaded", function () {
document.querySelectorAll("a")?.forEach(function (a) {
a.setAttribute("target", "_blank");
a.setAttribute("rel", "noreferrer");
});
});
< / script >