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

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

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,
};