Decoupled Drupal - Apa yang Harus Dipertimbangkan Saat Menggunakan JSON:API?
Diterbitkan: 2018-09-12"Keuntungan yang paling menarik dari API-first Drupal bukanlah cara ia meniadakan fitur presentasi Drupal, melainkan cara memungkinkan kemampuan CMS untuk memberi daya pada banyak aplikasi dan perangkat." — Jason Enter, Manajer Layanan Teknis, Acquia.
Hubungan antara konten dan kode sudah tidak sehat lagi. Lapisan presentasi yang menghadap konsumen tidak dihapus dari lapisan editor konten seperti sebelumnya, terutama karena pengalaman interaktif baru yang diberikan kepada konsumen melalui aplikasi.
Kerangka kerja dan bahasa pemrograman modern memungkinkan fleksibilitas dalam pembentukan tumpukan manajemen konten Anda. Dengan demikian, memisahkan konten dari kode telah menjadi praktik umum dalam beberapa tahun terakhir dan Drupal adalah salah satu pengadopsi awal yang sama. Mari pelajari lebih lanjut tentang arsitektur Decoupled Drupal dan Drupal 8.
Apa itu Drupal Terpisah?
Nah, Drupal yang dipisahkan memang terdengar "keren" bukan? Sepertinya semua orang membicarakannya, jadi itu pasti solusi yang lebih baik dan lebih mudah bukan? Ya, mungkin. Menawarkan beragam manfaat, strategi ini, juga dikenal sebagai "headless drupal" digunakan untuk mengeksploitasi Drupal semata-mata sebagai Sistem Manajemen Konten tanpa lapisan presentasi. yaitu hanya ada konten dan UI administratif, tanpa tema yang menghadap publik dan template lainnya, sehingga memperlihatkan API untuk aplikasi lain.
Tapi mungkin pertanyaan paling penting yang ada dalam pikiran Anda adalah, apa manfaat dari arsitektur Drupal yang dipisahkan?
Arsitektur tanpa kepala melakukan pekerjaan yang baik dalam mengurangi atau sepenuhnya menghilangkan sebagian besar masalah yang merupakan bagian dari sistem manajemen konten monolitik.
Peningkatan yang disederhanakan: Arsitektur yang dipisahkan memastikan bahwa pemutakhiran CMS tidak memengaruhi lapisan presentasi, sehingga Anda tidak perlu menyiapkan lagi setelah setiap pemutakhiran CMS.
Fokus yang lebih baik: Sebuah keuntungan besar bagi pengembang, dengan arsitektur terpisah, mereka hanya perlu khawatir tentang pengaturan bagian mereka dari tumpukan. Pengembang back-end tidak perlu khawatir tentang kompilasi CSS dan orang-orang front-end tidak perlu bingung tentang pemasangan komposer.
Pemecahan masalah yang mudah: Arsitektur tanpa kepala disusun sedemikian rupa sehingga platform terdiri dari bagian-bagian yang lebih kecil dan terpisah daripada satu aplikasi raksasa. Ini membuatnya jauh lebih mudah untuk menemukan bug dan memecahkan masalah mereka.
Peningkatan kinerja: Dengan kedua tim bekerja secara bersamaan dalam cara yang terpisah, pengembangan fitur baru dapat terjadi tanpa hambatan. Ini pada gilirannya meningkatkan kinerja platform secara keseluruhan.
Pemecahan masalah yang mudah: Arsitektur tanpa kepala disusun sedemikian rupa sehingga platform terdiri dari bagian-bagian yang lebih kecil dan terpisah daripada satu aplikasi raksasa. Ini membuatnya jauh lebih mudah untuk menemukan bug dan memecahkan masalah mereka.

Seberapa Penting JSON:API untuk Situs Web Drupal yang Dipisahkan?
Arsitektur yang kuat, aplikasi web yang responsif dan ramah pengguna adalah hasil dari kerangka kerja JavaScript, yang telah menjadi cukup populer sejak diperkenalkan pada awal 2010. Dan dengan semakin banyaknya orang yang memilih untuk menggunakan perangkat seluler untuk mengakses konten digital, membangun aplikasi asli untuk sebuah situs web sangat masuk akal.
Menyadari potensi ini, Drupal 8 telah menambahkan dukungan untuk membangun RESTful API ke dalam inti. Namun, ini memiliki kekurangannya sendiri karena layanan RESTful dari Drupal core tidak memberikan solusi yang kuat di luar kotak.
Implementasi REST API tradisional biasanya berhadapan langsung dengan serangkaian masalah tertentu:
- Seluruh grafik data yang diperlukan untuk membangun tampilan di konsumen akan membutuhkan terlalu banyak permintaan.
- Respon yang signifikan mengasapi mengembalikan semua bidang dan hubungan setiap entitas.
- Menemukan konten berdasarkan atribut data entitas adalah tugas yang sangat berat.
- Membuat versi API sehingga konsumen dan implementasi back-end dapat mengulangi secara terpisah.
Untuk mengatasi masalah ini, ada beberapa spesifikasi di luar sana, JSON:API menjadi salah satu yang paling menonjol.

Apa itu JSON?
JSON - Java Script Object Notation adalah salah satu format data yang paling umum untuk pertukaran data melalui layanan web. Terutama menggantikan XML, sifat JSON yang ringan dan mudah dibaca membuatnya cukup mengagumkan.
Mengapa Anda harus mempertimbangkan untuk menerapkan spesifikasi JSON:API?
Serangkaian standar dan konvensi yang telah ditentukan sebelumnya yang menjelaskan bagaimana API harus dilayani oleh server dan digunakan oleh klien untuk bertukar data dalam format JSON, spesifikasi JSON:API menawarkan manfaat utama saat diterapkan:
Efisiensi: Spesifikasi JSON:API dirancang sedemikian rupa sehingga, mereka menjaga jumlah permintaan dan ukuran data seminimal mungkin.
Produktivitas: Sangat sering terjadi bahwa, sebagai pengembang, Anda cukup bingung tentang praktik terbaik mana yang harus diikuti saat membangun API. Di sisi lain, dengan mengikuti serangkaian standar Anda keluar dari dilema.
Konsistensi: Spesifikasi menawarkan struktur dan perilaku yang konsisten saat digunakan untuk membangun aplikasi.
Dukungan: Spesifikasi diterima secara luas dan implementasi yang diperlukan untuk pustaka klien dapat ditemukan untuk hampir semua kerangka kerja dan bahasa pemrograman.
JSON: Modul API
Modul JSON:API untuk Drupal 8 adalah implementasi dari spesifikasi JSON:API. Saat Anda menginstal dan mengaktifkan modul JSON:API, REST API segera tersedia untuk setiap jenis dalam implementasi Drupal Anda. Dengan melintasi jenis entitas dan bundel sedemikian rupa sehingga dapat menghasilkan URL di mana ia dapat mengakses dan memanipulasi entitas, modul mencapai prestasi ini.
Sementara API JSON adalah spesifikasi yang cukup kompleks untuk ditangani, modul API JSON melakukan pekerjaan yang baik dalam menyederhanakan proses penggunaan, terutama untuk pengembang Drupal yang dipisahkan awal.
Namun, dengan mengikuti pendekatan "konfigurasi yang lebih sedikit" dan kesiapan produksi, modul JSON:API memang memiliki serangkaian kelemahannya sendiri.
Dukungan: Modul JSON:API sepenuhnya berbasis entitas, yang berarti modul ini berpusat di sekitar tipe dan bundel entitas Drupal. Namun, modul gagal mendukung atau menangani data kustom.
Kegagalan Tugas: Karena modul berbasis entitas dan tidak dapat menangani data khusus, modul ini juga gagal melakukan tugas lain seperti login, membuat sesi, atau logout pengguna, dll.
Struktur yang telah ditentukan sebelumnya: Modul JSON:API menyajikan struktur muatan yang telah ditentukan sebelumnya yang tidak dapat dimodifikasi. Setelah modul diaktifkan di Drupal, struktur muatan yang konsisten tidak dapat diubah atau disesuaikan dengan perubahan persyaratan vendor
Kurva pembelajaran: Karena modul JSON:API mengekspos semua atribut suatu entitas, itu mungkin menjadi kompleks secara alami. Dengan kurva belajar yang cukup curam, JSON:API mungkin bukan pilihan semua orang.

Bagaimana cara mengunduh dan menginstal JSON: Modul API?
PEMBARUAN: Pada Januari 2020, modul JSON:API sekarang menjadi bagian dari Drupal Core (selama blog ini diterbitkan). Oleh karena itu, menginstalnya tidak memerlukan langkah berikut.
Memiliki ketergantungan pada modul serialisasi, itu harus diaktifkan terlebih dahulu sebelum mengunduh dan menginstal JSON:API. Ini dapat dilakukan dengan menggunakan salah satu metode berikut:
Menggunakan Drush
$ drush en serialization -y $ drush dl jsonapi && drush en jsonapi -yMenggunakan Konsol Drupal
$ drupal module:install serialization $ drupal module:download jsonapi && drupal module:install jsonapi 