Skip to main content

Plugin strapi

Pertama project strapi agar plugin yang nantinya dibuat bisa dicoba langsung pada dasboard strapi

yarn create strapi-app my-project

langkah selanjutanya masuk ek directory project dan generate boilerplate plugin

cd my-project
yarn starpi generate

kemudian akan muncul tampila cli interactive, dan pilih plugin

generate-plugin

daftarkan plugin yang sudah dibuat pada dashboard strapi. buka file ./config/plugins.js. dan tambahkan seperti ini

module.exports = () => ({
"my-plugin": {
enabled: true,
resolve: "./src/plugins/my-plugin",
},
// plugin yang lain
});

plugin sudah bisa dijalankan. jalankan perintah berikut untuk melihat pluginnya

yarn develop --watch-admin

untuk melakukan testing atau debagger, bisa pakai cara ini

yarn starpi console

Membuat schema untuk API

api ini digunakkan jika plugin membutuhkan database untuk menyimpan data yang diperlukan oleh strapi

untuk membuatnya jalankan perintah

yarn strapi generate

dan pilih conten-types

generate-content-types

untuk strapi v4, content type perlu didftarkan dulu, agar strapi dapat membuat schemanya

buat file index.js pada folder berikut ./src/plugins/<nama-plugin>/server/content-types/todo

dam masukkan kode berikut

"use strict";

const schema = require("./schema.json");
module.exports = {
schema,
};

buka file ./src/plugins/<nama-plugin>/server/content-types/index.js

"use strict";

const todo = require("./todo");

module.exports = {
todo,
};

usahakan nama registernya sesuai nama content-typesnya, untuk menghindari error saat menjalankan plugin

Service

pergi ke folder ./src/plugins/<nama-plugin>/server/service. buat file untuk controller

"use strict";

module.exports = ({ strapi }) => ({
getWelcomeMessage() {
return "Welcome to Strapi 🚀";
},
});

daftarkan service pada file ./src/plugins/<nama-plugin>/server/service/index.js

"use strict";

const myService = require("./my-service");

module.exports = {
myService,
};

Controller

pergi ke folder ./src/plugins/<nama-plugin>/server/controller. buat file untuk controller


'use strict';

module.exports = ({ strapi }) => ({
index(ctx) {
ctx.body = strapi
.plugin('my-plugin')
.service(<nama service yang sudah didaftarkan pada service>)
.getWelcomeMessage();
},
});

daftarkan controller pada file ./src/plugins/<nama-plugin>/server/controller/index.js

"use strict";

const myController = require("./my-controller");

module.exports = {
myController,
};