Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Yii
Code

Pemrograman dengan Yii2: Membangun RESTful API

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called How to Program With Yii2.
How to Program With Yii2: Running Cron Services
Programming With Yii2: Building Community With Voting, Comments, and Sharing

Indonesian (Bahasa Indonesia) translation by ⚡ Rova Rindrata (you can also view the original English article)

Final product image
What You'll Be Creating

Dalam serial Pemrograman dengan Yii2 ini, saya membimbing pembaca untuk menggunakan Framework Yii2 untuk PHP. Anda juga mungkin tertarik dengan Pengantar Framework Yii saya, yang mengulas manfaat Yii dan mencakup ikhtisar tentang apa yang baru di Yii 2.x.

Dalam tutorial hari ini, saya akan meninjau bagaimana membangun REST API di Yii untuk menghubungkan aplikasi Anda ke cloud, aplikasi seluler, dan layanan lainnya. Saya akan memandu Anda melalui panduan ringkas REST API dari Yii dan memberikan konteks dan contoh permintaan umum.

Memulai dengan REST API Yii

Membangun REST API di Yii sebenarnya cukup mudah. Anda dapat memanfaatkan kerangka MVC yang ada, namun Anda menciptakan jalur akses yang berbeda yang Anda ingin diakses oleh berbagai jenis layanan (bukan pengunjung situs web).

Manfaat Kerangka REST Yii

Framework Yii memberikan dukungan luas dan dokumentasi terperinci untuk membangun API. Berikut adalah beberapa kemampuan bawaan saat membangun API:

  • Prototipe cepat dengan dukungan API umum untuk Active Record. Ini memungkinkan Anda untuk dengan cepat dan mudah mengekspos fungsi model data CRUD melalui API.
  • Negosiasi format respon (mendukung JSON dan XML secara default). Ada dukungan bawaan untuk mengembalikan data dalam format output umum.
  • Serialisasi objek yang dapat dikustomisasi dengan dukungan untuk field keluaran yang dapat dipilih. Mudah untuk memodifikasi data apa yang dikembalikan.
  • Pemformatan kumpulan data dan validasi kesalahan yang tepat.
  • Dukungan untuk Hypermedia As The Engine Of Application State (HATEOAS)
  • Routing yang efisien dengan pemeriksaan verb HTTP yang tepat.
  • Dukungan bawaan untuk verb OPTIONS dan HEAD.
  • Otentikasi dan otorisasi.
  • Caching data dan caching HTTP.
  • Tingkat pembatasan.

Saya tidak akan memiliki kesempatan untuk menyentuh semua ini hari ini.

Minat saya di REST API

Dalam episode ini, saya akan membuat API untuk mengijinkan kita memanipulasi tabel Item yang saya buat di layanan Twixxr dari tutorial API Twitter ini. Tapi saya juga berencana membangun API untuk fokus seri tutorial startup kami, Meeting Planner. API yang aman diperlukan untuk membuat aplikasi iOS untuk layanan ini. API akan memungkinkan komunikasi antara aplikasi seluler dan layanan cloud.

Membangun Controller REST

Dengan kerangka REST Yii, kita akan membuat endpoint untuk API kita dan mengatur pengendali untuk setiap jenis sumber daya.

Sumber daya pada dasarnya adalah model data aplikasi kita. Ini memperpanjang yii\base\Model.

Kelas yii\rest\UrlRule menyediakan routing siap pakai untuk memetakan model data kita ke endpoint CRUD API:

Programming Yii2 REST API UrlRule Documentation of CRUD API endpoints

Membuat Pohon Agar Bertindak Sebagai Endpoint API

Di template Yii2 Advanced, ada pohon front-end dan back-end, dan ini bisa diperluas. Untuk memisahkan fitur API, kita akan membuat pohon ketiga agar bertindak murni sebagai endpoint API.

Pengembang Yii Alex Makarov memberikan panduan bermanfaat ini untuk menciptakan pohon tambahan yang saya ikuti untuk menciptakan pohon ketiga saya:

Kemudian, saya menggunakan editor Atom untuk melakukan pencarian global dan mengganti "backend" dengan "api" di pohon api yang baru.

Dan saya menambahkan alias api ke /common/config/bootstrap.php:

Mengkonfigurasi Routing URL untuk Permintaan yang Masuk

Di /api/config/main.php, kita perlu menambahkan request[] untuk mengurai pengaturan penguraian JSON dan UrlRule untuk mengaitkan metode untuk model dan endpoint mereka:

Pada dasarnya semuanya diperlukan untuk mengaktifkan beberapa fungsi API yang kaya untuk model ini.

Contoh dengan cURL

Mari mulai membuat permintaan.

Permintaan OPTIONS

Menunjukkan metode API yang tersedia:

Inilah tanggapannya (GET, POST, HEAD, OPTIONS):

Permintaan GET

Permintaan: Berapa data yang ada?

Jawaban: 576 record di 29 halaman ...

Permintaan: Tunjukkan saya record 15:

Tanggapan:

Permintaan: Tunjukkan semua data di halaman 3:

Tanggapan:

Permintaan DELETE

Berikut adalah contoh permintaan GET yang diikuti dengan permintaan DELETE dan kemudian percobaan tindak lanjut yang gagal melakukan GET:

Permintaan untuk record yang dihapus mengembalikan kesalahan 404.

Permintaan POST

Untuk permintaan post, saya beralih ke aplikasi Postman Chrome:

Programming With Yii2 Chrome Directory Postman Extension Landing Page

Mendaftar Postman mudah dilakukan:

Programming With Yii2 Postmand Sign Up

Dan kemudian saya bisa mengirimkan permintaan ke API localhost saya di GUI yang lebih ramah:

Programming With Yii2 POST Request Shown in Postman UX

Kemudian, saya mengambil data melalui curl, record 577:

Postman terbukti penting untuk melengkapi pengujian saya karena curl baris perintah tidak mudah dikonfigurasi untuk pengiriman POST.

Melihat ke Depan

Selain gambaran mulai cepat REST, dokumentasi Yii 2.0 memberikan detail tentang berbagai aspek pembuatan API lainnya:

Saya berharap memiliki kesempatan untuk mengeksplorasi ini lebih banyak di episode masa depan. Tapi yang pasti, salah satu langkah selanjutnya adalah membuat API untuk Meeting Planner di serial startup.

Sebagai penutup, membangun API REST dasar dengan kerangka MVC Yii cukup sederhana. Tim Yii telah melakukan pekerjaan yang bagus dalam menstandarkan fungsionalitas untuk kebutuhan yang sangat penting, REST API. Saya harap Anda menikmati dalam mempelajari mereka.

Jika Anda memiliki pertanyaan atau saran, silahkan posting di komentar. Jika Anda ingin mengikuti tutorial Envato Tuts+ saya dan seri lainnya di masa depan, silakan kunjungi halaman instruktur saya atau ikuti @reifman. Pastikan memeriksa serial startup dan Meeting Planner saya.

Link Terkait

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.