Tampilkan postingan dengan label Interoperabilitas & Web Servis. Tampilkan semua postingan
Tampilkan postingan dengan label Interoperabilitas & Web Servis. Tampilkan semua postingan



Pada blog kali ini saya akan membahas service docs. Saat ini API yang kita buat belum memiliki dokumentasi. Kita akan membuat dokumentasi bagaimana cara mengakses API yang telah kita buat.


Mempersiapkan Docs Generator

Untuk membuat docs generator kita akan menggunakan swagger-ui (https://swagger.io/tools/swagger-ui/). Pertama kita install terlebih dahulu swagger-php plugins nya menggunakan composer seperti berikut.

composer require zircote/swagger-php

Screenshot_22.png

Selanjutnya membuat artisan command file. Buat file app/Console/Commands/SwaggerDocScanner.php

Screenshot_23.png

Buka file app/Console/Kernel.php, tambahkan code berikut pada variabel commands.

Screenshot_24.png

Untuk menjalankan artisan command SwaggerDocScanner dan menggenerate docs, pada terminal/CommandPrompt jalankan command php artisan swaggerdoc:scan, command teserbut akan membuat file public/swaggerdoc.json. Saat ini kalau dijalankan, command ini bakal error, karena kita belum mendefiniskan anotasi docs nya.

Untuk tampilan User Interface nya kita perlu mebuat file html di public folder. Buat file public/api-docs.html, code nya seperti berikut.

Screenshot_25.png

Atau anda juga bisa copy melalui link berikut https://github.com/sunnyagarwal008/setup-swagger-ui-in-one-page/blob/master/swagger-ui.html.

Jalankan servernya, kemudian akses endpoint http://localhost:8000/api-docs.html, maka tampilan akan seperti berikut.

Screenshot_26.png

Membuat Dokumentasi API (Get Request)

Kita akan membuat API dokumentasi untuk endpoint /register. Buka file app/Http/Controllers/Controller.php, tambahkan code dibawah ini.

Screenshot_27.png

Buka file app/Http/Controllers/Public/PostsController.php, tambahkan code dibawah ini.

Screenshot_29.png

Pada terminal/CommandPrompt jalankan command di bawah ini.

php artisan swaggerdoc:scan

Setiap kali anda mengubah anotasi docs, harus menjalankan command tersebut supaya bisa update docs nya.

Screenshot_28.png

Pada browser buka http://localhost:8000/api-docs.html

Screenshot_30.png

Jika di click pada button GET, maka tampilanya akan seperti berikut.

Screenshot_31.png

Silahkan dicoba dengan mengklik button Try it out.

Membuat Dokumentasi API (Post Request)

Kali ini kita akan membuat t API dokumentasi untuk endpoint /register. Untuk membuat dokumentasi API mengenai Post Request, buka file App/Http/Controllers/AuthController.php dan tambahkan code berikut.

Screenshot_32.png

Pada terminal/CommandPrompt jalankan command di bawah ini. Setiap kali anda mengubah anotasi docs, harus menjalankan command di bawah ini supaya bisa update
docs nya.

php artisan swaggerdoc:scan

Akses kembali endpoint http://localhost:8000/api-docs.html

Screenshot_33.png

Jika di click pada button POST, maka tampilannya akan seperti berikut.

Screenshot_34.png

Silahkan dicoba dengan mengklik button Try it out.

Membuat dokumentasi untuk semua endpoint

Pertama kita akan membuat dokumentasi untuk endpoint user login, tambahkan script berikut pada AuthController.php.

Screenshot_35.png

Jalankan command berikut pada terminal.

php artisan swaggerdoc:scan

Akses kembali http://localhost:8000/api-docs.html, maka akan muncul endpoint untuk user login.

Screenshot_36.png

Silahkan dicoba dengan mengklik button Post lalu Try it out.

Screenshot_37.png

Jika berhasil maka akan muncul respon token yang akan kita gunakan untuk authentication.

Tambahkan script berikut pada Controller.php untuk menambahkan fitur authorization agar semua endpoint post yang akan kita akses perlu mengirimkan token terlebih dahulu.

Screenshot_38.png

Jalankan kembali command berikut.

php artisan swaggerdoc:scan

Maka ketika mengakses http://localhost:8000/api-docs.html, akan muncul button Authorize sebagai akses token yang kita gunakan untuk mengakses endpoint.

Screenshot_39.png

Selanjutnya kita akan membuat dokumentasi untuk function show tambahkan script berikut pada Public\PostsController.php.


Screenshot_40.png

Jalankan kembali command berikut.

php artisan swaggerdoc:scan

Kemudian akses kembali http://localhost:8000/api-docs.html, maka akan muncul endpoint baru.

Screenshot_41.png

Coba dengan klik button GET, lalu Try it out.

Dokumentasi untuk endpoint /posts

Sebelumnya kita baru membuat dokumentasi pada endpoint /public/posts, selanjutya kita akan akan membuat dokumentasi untuk endpoint /posts, tambahkan script2 berikut pada setiap function di controller App\Http\Controllers\PostsController.php.

Screenshot_42

Screenshot_66.png

Screenshot_44.png

Screenshot_65.png

Screenshot_64.png

Seperti biasa jalankan command berikut.

php artisan swaggerdoc:scan

Maka akan muncul endpoint-enpoint berikut.

Screenshot_50.png

Sekarang tinggal kita test satu per satu endpoint Posts, namun sebelum itu kita perlu login terlebih dahulu untuk mendapatkan access token. Klik endpoint User login, klik Try it out, masukkan value email dan password yang valid, lalu execute.

Screenshot_53.png

Jika berhasil maka akan muncul respon access token.

Screenshot_54.png

Klik Authorize, dan masukkan access token nya.

Screenshot_55.png

Pertama kita coba akses endpoint get posts, klik Try it out, bisa dengan mengirimkan parameter page ataupun tidak, lalu execute.

Screenshot_57.png

JIka berhasil respon akan seperti berikut.

Screenshot_56.png

Kedua kita coba create new posts, klik Try it out, lalu ketikkan value yang akan dikirimkan, kemudian execute.

Screenshot_51

Jika berhasil maka respon akan seperti berikut.

Screenshot_52.png

Ketiga ktia coba akses endpoint Get posts by id denga mengirimkan parameter berupa id posts.

Screenshot_67.png

JIka berhasil respon akan seperti berikut.

Screenshot_59.png

Keempat kita coba akses endpoint Update posts, dengan mengirimkan parameter id, dan value untuk update data posts.

Screenshot_60.png

Jika berhasil maka respon akan seperti berikut.

Screenshot_61.png

Terakhir kita coba akses endpoint Delete post by id dengan mengirimkan paramter id.

Screenshot_62.png

Jika berhasil maka respon akan seperti berikut.

Screenshot_63.png

Sekian tutorial membuat dokumentasi API menggunakan swagger ini, selamat mencoba

Hatur Nuhun


Di tutorial bagaimana cara membuat aplikasi client. Sebelumnya kita membuat  aplikasi web service REST API server, kali ini kita akan buat aplikasi client nya dan bagaimana cara mengakses data dari server tersebut.

Pertama install terlebih dahulu project lumen client app menggunakan composer seperti dibawah ini.

Screenshot_107

Disini saya membuat project dengan nama lumen-client-app, kemudian masuk ke directory aplikasi client tersebut, dan jalankan servernya pada port 9000.

Screenshot_108.png

Coba akses localhost:9000 pada browser, jika tampilannya seperti dibawah ini maka telah berhasil.

Screenshot_109.png

Membuat Fungsi Untuk Mengakses Web Service JSON (Get Request)

Setelah jalankan servernya, kita buka project lumen-client-app pada text editor kita, buka file routes/web.php dan buat routing seperti berikut.

Screenshot_110.png

Buat controller dengan nama app/Http/Controllers/PostsController.php, kemudian buat function getRequestJson dengan code nya seperti dibawah ini.

Screenshot_111.png

Masuk kedalam folder resource/views, buat sebuah folder dengan nama posts kemudian buat file getRequestJson.php di dalam folder posts tersebut.

Dalam getRequestJson.php ini kita akan membuat struktur HTML, tambahkan script berikut di dalam getRequestJson.php.

Screenshot_113.png

Sebelum kita test di browser tentunya kita perlu menjalankan terlebih dahulu server web servicenya. Teman-teman bisa masuk ke project sebelumnya, yaiut “php-lumen-service-app” dan buka terminalnya, disini saya menggunakan text editor visual studio code yang di dalamnya sudah tersedia fitur terminal untuk memudahkan kita dalam menjalankan servernya. Untuk menjalankan web service nya kita gunakan port 8000 seperti berikut.

Screenshot_119.png

Sekarang kita masuk lagi ke project lumen-client-app, untuk mengecek terlebih dahulu apakah data nya sudah berhasil diambil dari web service kita bisa menggunakan function dd() atau biasa disebut dump, kita lihat isian data dari respon dengan menambahkan function dd() sebelum return view.

Screenshot_122.png

Lalu akses endpoint http://localhost:9000/posts/get-request-json, jika respon nya seperti berikut maka data telah berhasil di get dari web service.

Screenshot_123

Bisa dilihat isi dari response adalah 4 data berbentuk array yang didapat dari web service. Selanjutnya kita hapus kembali function dd tersebut atau bisa di berikan comment saja, kemudian akses kembali endpoint http://localhost:9000/posts/get-request-json, jika berhasil tampilan akan seperti berikut.

Screenshot_120.png

Membuat Fungsi Untuk Mengakses Web Service XML (Get Request)

Sekarang kita akan membuat request client yang sama, namun menggunakan format XML. Tambahkan routing baru pada file web.php.

Screenshot_118.png

Buat function baru getRequestXml() pada PostsController.

Screenshot_124.png

Untuk format xml kita perlu menginstall terlebih dulu library simple xml.

composer require ext-simplexml

Seperti biasa sebelum kita akses endpoint http://localhost:9000/posts/get-request-xml, kita lakukan dump terlebih dahulu untuk melihat isian dari response, jika tampilan seperti berikut maka sudah berhasil di get.

Screenshot_125.png

Hapus kembali function dump atau berikan comment, lalu akses kembali endpointnya.

Screenshot_126.png

Membuat Fungsi Untuk Mengakses Web Service JSON (Post Request)

Sekarang kita akan melakukan post data atau mengirimkan data dari client, pertama buat terlebih dahulu routing nya.

Screenshot_128

Kemudian buat function postRequsetJson() pada PostsController.

Screenshot_129

Selanjutnya kita buat tampilan view pada folder posts/postRequestJson seperti berikut.

Screenshot_130

Jika berhasil, maka tampilan akan seperti berikut.

Screenshot_127

Cek juga di database kita apakah data tersebut sudah berhasil di create atau belum.