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