#Bram — Week EX

Haiii , Bram disini akan menceritakan beberapa progress untuk saat-saat terakhir #cieeeh

API Documentation

Jika orang awam mengetahui yang namanya kamus, maka developer web maupun perangkat lunak mengenal yang namanya API (Application Programming Interface ). API merupakan semacam ‘kamus’ yang berguna bagi developer. Di dalam API berisi kumpulan penjelasan dari beberapa fungsi yang berada dalam suatu produk perangkat lunak, misalnya berupa deskripsi singkat, informasi,contoh request dan contoh respons.

Berikut tertera contoh dari API documentation dari Twitter. Fungsi yang menjadi contoh ialah fungsi GET account/settings.

Gambar 1.1 Contoh API Documentation dari Twitter (Part 1)
Gambar 1.2 Contoh API Documentation dari Twitter (Part 2)

Kegunaan dari API documentation itu sendiri adalah supaya developer lain yang akan mengembangkan fungsi-fungsi yang ada dalam suatu perangkat lunak yang dibuat menjadi paham atas penjelasan yang dibuat dan pengembangan dapat berjalan dengan maksimal. Singkatnya, API documentation mempermudah developer yang ingin mengembangkan suatu produk perangkat lunak.

Dokumentasi merupakan hal yang terpenting dalam proses pembuatan perangkat lunak. Selain konsistensi dengan nama variabel, keluaran dari variabel tersebut juga diperhatikan konsistensinya. Jika pembuatan dokumentasi terhadap suatu fungsi dibuat dengan baik-baiknya maka developer yang lain dapat mengerti fungsi yang kita buat dan dapat mengembangkan fungsi yang kita buat dengan lancar. Jika tidak, developer akan sulit memahami dan membutuhkan beberapa waktu untuk memahami fungsi yang kita buat.

API Generation

Supaya produk perangkat lunak dapat dikembangkan dengan baik, maka ada perlunya kita perlu membuat suatu API dari produk kita. Karena kami menggunakan laravel, tidak perlu lagi repot untuk membuatnya. Package yang digunakan ialah mpociot/laravel-apidoc-generator yang diperoleh dari https://github.com/mpociot/laravel-apidoc-generator

Beberapa cara untuk mengenerate API, yaitu:

  1. Menginstall package mpociot melalu composer
$ composer require mpociot/laravel-apidoc-generator

2. Tambahkan ini pada suatu baris di config/app.php

Mpociot\ApiDoc\ApiDocGeneratorServiceProvider::class,

3. Untuk mengenerate API, gunakan perintah berikut:

$ php artisan api:generate --routePrefix="api/v1/*"

4. Tampilan laman API yang sudah dibuat. Dapat diakses di public/docs/index.html

Gambar 2.1 Laman API yang baru saja dibuat

Yey, API sudah dibuat! Laravel sangat memudahkan kita dalam membuat apapun termasuk API. Buatlah API sebagus mungkin dan semenarik mungkin xD

Error Code dan Exception Handling

Dalam membuat suatu produk perangkat lunak, segala error yang terdapat pada Wister harus ditangani setuntas mungkin sampai tidak ada errornya. Dengan demikian, maka saya harus mempelajari terlebih dahulu bagaimana error code bekerja dan menerapkannya pada exception handling. Dalam laravel, exception handling untuk error code terdapat dalam folder app/Exceptions yang bernama Handler.php. Pada Handler.php berisi beberapa fungsi:

  1. Report

Fungsi report berfungsi untuk melaporkan error ketika error terjadi pada suatu fungsi yang dijalankan. Pada Wister, fungsi report digunakan untuk mencatat log error terjadi dan hasil log error disimpan pada folder log yang tersedia. Akan tetapi, karena keterbatasan waktu, fungsi ini tidak sempat kami terapkan di Wister

Gambar 3.1 Fungsi report pada Handler.php

2. Render

Fungsi render berfungsi sebagai penerjemah antara controller dan view. Jadi jika terjadi exception, maka fungsi render akan berjalan. Masalah exception yang terjadi biasanya ModelNotFoundException dan NotFoundHttpException. Akan tetapi yang saya akan jelaskan hanya cara kerja handling exception untukNotFoundHttpException saja. Exception handling pada NotFoundHttpException sangat penting penerapannya pada Wister untuk menangani error yang terjadi saat mahasiswa atau dosen salah mengetikkan nama dokumen atau term yang mengakibatkan error code muncul dan pada prinsip agile, error code tidak boleh muncul jika produknya sudah jadi. Maka dari itu, jika salah nama diketikkan pada addressnya harus mengarah ke suatu halaman yang berisi pesan error tersebut.

Gambar 3.2. Fungsi render pada Handler.php
Gambar 3.3. Error page setelah error ditangani

Disamping cara yang dijelaskan pada fungsi render, terdapat satu cara yang lebih singkat, yaitu menggunakan fungsi abort(<‘error_code>’) yang dapat digunakan pada Laravel 5.2 keatas. Cara ini lebih singkat daripada penambahan sesuatu dr fungsi render diatas dan menghasilkan keluaran yang sama seperti cara yang diatas. Adanya error code dan exception handling ini membuat produk perangkat lunak kita menjadi lebih layak dan lebih elegan, sehingga pemakainya puas menggunakan perangkat lunak kita.

Sumber:https://scotch.io/tutorials/creating-a-laravel-404-page-using-custom-exception-handlers

Autentikasi

Autentikasi merupakan proses untuk mengidentifikasi seseorang yang biasanya berdasarkan dari username dan passwordnya yang akan masuk dalam suatu aplikasi perangkat lunak (www.webopedia.com/TERM/A/authentication.html). Proses autentikasi yang sering dilakukan adalah proses login. Proses ini dilakukan terdapat pada banyak aplikasi yang sering kita pakai. Untuk proyek Wister yang sedang kita kembangkan, kita juga menerapkan fitur login dengan menggunakan akun JUITA. Hal ini kita terapkan supaya para dosen nantinya dapat memonitor siapa saja mahasiswa yang melakukan pengeditan maupun penambahan dokumen dan para mahasiswa tahu dosen yang mengajar mata kuliah Sister pada term yang sedang mereka jalankan.

Fitur login ini sebelumnya akan diimplementasikan di sprint 3 oleh #Helmi, akan tetapi karena keterbatasan waktu dan fitur ini bukan fitur MVP, fitur ini tidak dapat dikerjakan di sprint 3. Pada sprint 3, #Helmi mendapatkan plugin SSO yang merupakan bagian dari fitur autentikasi JUITA dari teman dia yang sekaligus juga merupakan teman saya yang dulunya bergabung di RisTek, yaitu Widyanto Bagus Priambodo.

Gambar 4.1 Plugin SSO

Lain-Lain dan Penutup

Demikian progress yang saya bisa ceritakan pada saat-saat terakhir, semoga isi blog ini dapat menambah nilai saya pada individual review dan berguna di masa mendatang juga. Tetap semangat sampai akhir nanti! Bye cha!

頑張ってください!!また会う個々の報告まで

#Bram out

Like what you read? Give Wiki Sister a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.