1
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Strapiを試す

Posted at

完成したのものは以下

Install その1 SQLite

以下のクイックスタートを見ながらすすめる。

URLからもわかるように、現時点では3.0.0はbetaのようです。

yarn create strapi-app strapi-example --quickstart

インストールが終わると

Screenshot from 2019-12-15 13-03-54.png

上記のような画面が開くので必要項目を入力すれば設定は終わり。日本語にも対応しているようです。

ただ、このクイックスタート、どうやらSQLiteを使用するので、そのままではちょっと使いにくい。

Install その2 MySQL

ここではDBをMySQLを使っていきます。さきほどのプロジェクトを削除してもう一度作り直します。今度は --quickstart はつけません。

rm -rf strapi-example
mkdir strapi-example

ドキュメントが間に合ってないのか、MongoDBについてのチュートリアルしかありませんでしたが、ほぼ同手順でMySQLのインストールも問題なくできるかと思います。

MySQLのDockerの設定は以前自分の作成した以下の設定をほぼそのまま使用しています。

ただしそのまま使用すると、

⛔️ Connection test failed: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

のようなエラーが発生する。"Node.js" "MySQL 8.0" あたりのキーワードで検索すると解決策がでてくるはず。ここではMysqlのバージョンを下げて対応した。文字コードなどの設定も必要なので、わからない場合には完成したリポジトリを参考にしてください、文字コードを変えずに使用すると日本語のPOSTで400が返されます(一度このミスをしてしまった……)。

MySQLの設定が終わったら、docker-compose up したあと、DBを作成してそのまま接続可能な状態で

cd strapi-app
yarn create strapi-app backend

Screenshot from 2019-12-15 16-25-57.png

cd backend
yarn develop

以上でインストールして管理画面を開くまでの作業は終了です。自分のときにはなぜか yarn develop が2回失敗したんだけど、3回目叩いてみたらうまくいった。理由はちょっとよくわからないんだけど、発生してたエラーは以下

yarn develop
yarn run v1.21.1
$ strapi develop
[2019-12-15T07:30:26.689Z] debug ⛔️ Server wasn't able to start properly.
[2019-12-15T07:30:26.690Z] error (hook: bookshelf) is taking too long to load.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

backend/config/hook.json のtimeoutを多少長めに変更しておくとよさそうな気がする。

記事用のAPIを作る

上記を参考に post を作成する。created_atupdated_at を定義しようとしてもできなくて、おかしいなーとおもったらどうやらデフォルトですでに定義されているようで、これは /backend/api/post/models/Post.settings.json で確認することができる。

Screenshot from 2019-12-15 18-15-15.png

コンテンツ管理で詳細な設定が変更できる

Screenshot from 2019-12-15 18-17-03.png

それっぽい感じに変更しておいた。

管理画面を変更する

管理画面はセキュリティ上、そのパスを変更できるそうなので、ここではドキュメントと同様に /dashboard に変更する。

{
  "host": "localhost",
  "port": 1337,
  "proxy": {
    "enabled": false
  },
  "cron": {
    "enabled": false
  },
  "admin": {
    "autoOpen": false,
    "path": "/dashboard"
  }
}

yarn build で再構築すると設定が反映される。

Admin UserとEnd User

strapiでは管理画面のユーザはAdmin User、そうでないフロントエンド側の権限を制御するユーザをEnd Userとしているらしい。

strapiから記事の投稿はできるので今回はAdmin Userで記事の作成をしていくのですが、これが問題になる場合には管理者ページをまた別に作るか、stradminの管理者ページをカスタマイズする必要がありそう。Admin Userはロールによる管理ができないので、前者のほうが筋が良さそうに思えるけれど、管理画面をつくる工数が与えられることが前提なのでWordPressの置き換えの選択肢として考えるのであればちょっとつらそう。

Postを投稿する

strapiの投稿画面から投稿するだけ

Screenshot from 2019-12-15 21-40-31.png

draft、いわゆるプレビュー画面の実装についてなどもドキュメントに書いてあります

レスポンスを確認してみると

curl --silent "http://localhost:1337/posts" | jq
[
  {
    "id": 1,
    "name": "テスト投稿",
    "content": "これはテスト投稿です",
    "created_at": "2019-12-15T12:40:22.000Z",
    "updated_at": "2019-12-15T12:40:22.000Z"
  }
]

いい感じになっている。

感想

strapiのAdmin Userで完結するのであればいいんだけど、もし管理画面をそれとは別に作らないといけないのであれば、WordPressを置き換えるものかと言われるとちょっと微妙な感じがする。

strapi自体はとてもよくて、ちょっとした個人のものであれば今後これを使うことがありそう

1
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?