Januari 28

Menggunakan Postman untuk Pengujian API

Ahad pagi merupakan hari yang sangat baik untuk berbagi kembali, sambil ditemani teh manis hangat dan tahu sumedang hangat. 😀

Pada artikel sebelumnya, kita sudah membahas bagaimana cara membuat Mock API dengan menggunakan tools mockapi.io. Bila teman-teman terlewat dengan artikel tersebut, teman-teman dapat membacanya kembali di sini :

Membuat Mock API dengan mockapi.io

Langkah selanjutnya adalah melakukan pengujian terhadap Mock API yang sudah kita buat tersebut tentunya. Nah, untuk pengujian ini, saya akan menggunakan Postman sebagai API Platform yang akan kita gunakan. Sebenarnya teman-teman dapat menggunakan API Platform Tools lainnya yang teman-teman sukai untuk melakukan pengujian API, namun saya pribadi sejak dahulu lebih senang menggunakan Postman sebagai API Platform yang saya gunakan, selain gratis, juga banyak fitur yang sangat bermanfaat untuk saya dapat gunakan.

Untuk Postman sendiri, teman-teman dapat mengunduhnya pada link berikut :

https://www.postman.com/downloads/

Adapun langkah-langkah pengujian Mock API dengan Postman sebagai berikut :

  • Buka Postman. Bila teman-teman baru pertama kali buka Postman, maka akan terlihat langkah untuk membuat sebuah Workspace baru. Teman-teman dapat memilih menggunakan template yang sudah disediakan oleh Postman. Namun, kali ini kita akan menggunakan Blank Workspace untuk pengujian kita kali ini. Kemudian klik tombol Next.

Postman Blank Workspace

  • Pada halaman ini, teman-teman diminta untuk mengisi nama workspace, keterangan perihal workspace tersebut, dan siapa yang akan mengakses workspace tersebut. Klik tombol Create untuk mulai membuat workspace.

Membuat Workspace Baru

  • Setelah workspace berhasil dibuat, teman-teman akan melihat tampilan Postman seperti berikut :

Blank Collection

  • Sebelum kita membuat collection, kita coba untuk membuat sebuah environment terlebih dahulu. Fungsi environment sendiri, agar memudahkan kita mengatur penggunaan collection untuk diuji pada environment yang berbeda. Kita klik tab Environments, kemudian klik icon + untuk membuat Environment baru.

Environments

  • Maka akan terbuat Environment baru. Isi nama Environment yang kita buat, bisa Local untuk lokal kita, Development untuk development kita, Staging, ataupun Production untuk masing-masing environment pada development project kita. Dikarenakan pada kali ini kita akan menguji Mock API, maka saya namakan environment kali ini Mock API. Isi variabel yang dibutuhkan, kemudian klik tombol Save.

Environment Baru

  • Setelah environment sudah dibuat, langkah selanjutnya kita sudah dapat membuat collection. Klik tab Collection, kemudian klik icon +. Maka akan tampil pilihan jenis collection yang ingin dibuat. Dikarenakan Mock API kita menggunakan RESTful API, maka kita pilih REST API basics, teman-teman dapat menyesuaikannya dengan kebutuhan project teman-teman.

Membuat Collection Baru

  • Maka akan tampil seluruh request untuk CRUD standard RESTful API.

CRUD Collection

  • Teman-teman dapat mengganti nama collection yang sudah dibuat dengan melakukan klik di tombol titik 3, kemudian klik Rename. Atau langsung dapat diklik pada Nama Collectionnya.

Rename Collection

  • Setelah collection dan semua request yang dibutuhkan sudah dibuat, kita sudah dapat menggunakan collection kita untuk pengujian API. Kita coba dengan salah satu request, klik request Get data, ubah endpoint info dengan endpoint yang ingin kita uji, kemudian pilih Environment yang sebelumnya kita buat, dan klik tombol Send. Tunggu sebentar sampai proses request selesai.

Get Data

Resource Products

Sampai sini kita sudah selesai membuat collection untuk melakukan pengujian API. Sisanya teman-teman dapat menyesuaikannya sesuai dengan kebutuhan project yang sedang dikerjakan.

Akhir kata, semoga artikel ini bermanfaat untuk teman-teman yang sedang membuat api untuk kebutuhan development project. Selamat berhari libur dan Terima Kasih. 😀

Januari 27

Membuat Mock API dengan mockapi.io

Sabtu pagi yang cerah, diiringi teh manis hangat, dengan gemericik suara hujan, merupakan waktu yang tepat untuk kita berbagi kembali. 😀

Untuk kali ini, kita akan mencoba membahas, bagaimana membuat sebuah mock api tanpa harus ribet coding dengan menampilkan response json berupa hardcode string. Cara ini memiliki beberapa keunggulan, di antaranya dapat mempercepat waktu development. Tentu saja, dengan membuat sebuah mock api, suatu tim yang bekerja dimana di dalamnya terdapat frontend, backend, bahkan mobile developer, maka masing-masing developer dapat bekerja secara paralel. Dimana baik frontend maupun mobile developer, tidak harus menunggu backend developer untuk menyelesaikan semua api nya, karena baik frontend maupun mobile developer, dapat melihat langsung request & response yang akan digunakan dalam development.  Dan untuk beberapa case, bahkan dapat mempercepat QA dalam mempersiapkan test case yang akan dibuatnya.

Sebenarnya ada banyak tools yang dapat digunakan untuk membuat sebuah mock api atau fake api. Namun pada pembahasan kali ini, kita akan menggunakan tools mockapi.io. Adapun langkah-langkah penggunaannya, sebagai berikut :

  • Buka mockapi.io dan buat akun serta login. Teman-teman dapat jg menggunakan akun google untuk langsung membuat akun dan login. Maka akan tampil kira-kira seperti berikut :

mockapi.io

  • Buat sebuah Project baru dengan meng-klik tombol +. Isi Name dengan nama project kita. Bila diperlukan untuk kebutuhan versioning api, bisa ditambahkan API Prefix. Kemudian klik tombol Create.

Tambah Project

  • Sampai pada tahap ini, project baru akan terdaftar berikut project-project lainnya bila teman-teman juga menggunakannya untuk banyak project.

Project List

  • Pilih project yang sudah kita buat tadi. Di sini akan terlihat base url dari mock api yang akan kita buat.

Resource List

  • Klik tombol New Resource untuk membuat sebuah resource api baru, maka akan tampil Popup New Resource. Buat skema api yang ingin kita buat. Nah, di sini kita bisa memanfaatkan Faker.js untuk generate random data terkait data apa yang ingin kita generate saat Mock API kita dipanggil. Teman-teman juga dapat membuatnya menjadi data statis. Jadi tergantung kebutuhan project nanti. Untuk response sendiri, bila teman-teman ingin membuatnya custom, misal dengan format sebagai berikut :

    Dimana $mockData merupakan data generate dari mockapi.io, maka teman-teman harus melakukan subscription terlebih dahulu dikarenakan untuk versi gratis, response yang diberikan akan langsung berupa data array hasil generate. Kemudian klik tombol Create.

Tambah Resource

  • Maka resource baru kita akan terlihat pada List Resource. Di sini kita dapat melakukan penyesuaian, berapa jumlah data yang akan kita generate. Maksimal jumlah data yang dapat kita generate adalah 100 buah.

Set Total Data

Generate 13 Data

  • Sebuah resource berhasil kita buat dan sudah siap untuk kita gunakan. Teman-teman juga dapat melihat contoh response yang akan dihasilkan dengan menekan tombol Data. Dan teman-teman juga dapat mengubah dan/atau menghapus resource tersebut dengan menekan tombol Edit dan/atau icon Delete.

Action Mock API

Data

Nah, sampai tahap ini, Mock API sudah berhasil kita buat untuk sebuah resource dan sudah siap untuk digunakan. Ada hal menarik yang perlu diperhatikan dalam penggunaan tool mockapi.io ini, dimana mockapi.io menerapkan secara menyeluruh perihal RESTful API. Bila teman-teman bingung bagaimana sebuah API secara penuh menerapkan RESTful API, teman-teman dapat membaca dokumentasi perihal RESTful API di sini (dan mungkin di lain kesempatan, kita akan coba bahas mengenai RESTful API) :

https://restfulapi.net/

Demikian pembuatan Mock API sudah selesai kita buat, mudah-mudahan bermanfaat buat teman-teman khususnya yang sedang kesulitan untuk mengatur waktu development para developer dalam tim. Akhir kata, kita habiskan teh hangat kita, semangat terus untuk bekerja, dan Terima Kasih. 😀

Maret 8

Menjalankan php di luar htdocs

Malam yang tepat untuk berbagi, dan kali ini, kita akan coba membahas hal kecil yang mungkin sangat bermanfaat dalam pekerjaan.

Sebelum kita masuk ke cerita, mungkin sebagai perkenalan, di kantor yang sekarang, posisi saya merupakan Squad Supervisor, dimana tugas saya lebih ke arah solving problem teknikal & manajemen project, dan tidak turun dalam development, dalam artian ikut dalam ngoding.

Nah, ceritanya, di kantor kita sedang mengejar target development fitur untuk kuartal pertama. Dengan jumlah developer yang terbatas, sementara project yang menantang (menantang maut mungkin, hehe… Just kidding) baik dalam jumlah maupun pengerjaannya, kita dituntut untuk mengerjakan development tersebut secepat mungkin. Dengan perumpamaan yang selalu saya ucapkan terhadap tim, dimana proses development itu seperti sebuah balon. Yuph, seperti balon, bila suatu titik kita tekan, maka akan membesar di titik lawannya. Seperti halnya development, bila kita menekan waktu development (dalam artian mempercepat proses development), maka berimbas dengan jumlah developer yang membengkak. Namun bila kita menekan pula jumlah developernya, maka akan membengkak pula bugs yang akan dihasilkan. Yuph, dikarenakan kita tidak mau mengurangi waktu maupun kualitas, tentu titik lawannya, yakni jumlah developer yang mesti membengkak. Singkat cerita, tentu tidak dapat menembah developer dalam waktu singkat, sehingga strategi lain yang dilakukan adalah dengan mengalihkan developer di project lain ke dalam project yang sedang kita kerjakan. Dan akhirnya, karena masih kekuranganannya developer kembali (inget menekan titik waktu & kualitas, menyebabkan titik jumlah developer menjadi 2x lipat) menyebabkan saya pun ikut dalam development tersebut.

Di kantor sendiri, project yang sedang kita kerjakan menggunakan bahasa pemrograman php. Yuph, bisa dibilang bahasa sejuta umat. Biasanya, saya selalu merapikan source code dari project dalam sebuah folder, dan tentunya saya simpan di drive data, tentunya tidak di dalam folder server seperti htdocs pada php dan inetpub pada dotnet. Di kantor sendiri umumnya project menggunakan framework yii, dimana untuk menjalankan project tersebut dapat menggunakan perintah berikut walaupun folder project di luat htdocs :

Nah, di satu project ini, kebetulan kita tidak menggunakan framework, alias menggunakan php native. Lalu, bagaimana caranya untuk menjalankan file php tersebut di luar folder htdocs. Yuk kita langsung praktikan. Kita buat sebuah file php, simpan dengan nama index.php. Isi file php berikut dengan code berikut :

Untuk saya sendiri, menyimpan di alamat : D:\Data\Data Agun\Blog\Run Php

Buka command prompt dan pindahkan posisi folder ke alamat folder php kita seperti berikut :

Lalu ketik perintah berikut :

 

Dimana kita dapat mengganti port yang ingin dijalankan, dalam contoh di atas, kita dapat mengganti port tersebut dengan port lainnya sesuai kebutuhan. Bila berhasil, maka saat kita akses browser dengan alamat http://localhost:45, akan tampil seperti berikut :

Dan di Command Prompt akan terlihat seperti berikut :

 

Mungkin sekian secuil ilmu yang kita bahas di malam sunyi ini. Semoga sekecil apapun ilmu yang dibagikan dapat bermanfaat bagi teman-teman semua di dalam pekerjaan.

Akhir kata, selamat malam dan selamat beristirahat. 😁

November 9

Publishing dan Konfigurasi Web Deploy pada IIS

Malam yang indah untuk melanjutkan pekerjaan keseharian, apalagi kalau bukan ngoding. 😅

Sudah lama juga tidak menulis, yah dikarenakan pekerjaan yang lumayan padat juga sih. Untuk malam ini, sebenarnya tulisan ini sekedar mengingat bila di lain waktu melakukan hal yang sama. Tidak perlu berlama-lama lagi, langsung aja.

Jadi, ceritanya hari ini hampir seharian setting server untuk kebutuhan publishing website. Kebutuhan ini untuk dipresentasikan pada keesokan harinya. Sebenarnya ini bukan kali pertama setting server untuk keperluan publishing/deployment. Perlu diingat, ini berfokus pada teknologi nya Microsoft, apalagi kalau bukan Windows Server & Dot Net. Adapun langkah-langkahnya akan dibagi dua, dimana kita akan setting dari sisi server terlebih dahulu, baru kemudian setting dari sisi project untuk deploymentnya. Di sini saya akan menggunakan Web Deploy untuk sarana deploymentnya. Berikut langkah-langkahnya :

  • Install Internet Information Services (IIS) Manager :
    • Pada Server Manager, pilih menu Manage > Add Roles and Features.Add Roles and Features
    • Pada langkah Before You Begin langsung klik Next.Before You Begin
    • Pada bagian Installation Type, pilih Role-based or feature-based installation,kemudian klik Next.Installation Type
    • Pada bagian Server Selection, pilih Select a server from the server pool, kemudian klik Next.Server Selection
    • Pada bagian Server Roles, pilih Web Server (IIS), lalu klik Next.Server Roles
    • Pada bagian Features, pastikan .NET Framework 3.5 dan .NET Framework 4.6 terpilih dan langsung klik Next.Features
    • Pada bagian Confirmation, kemudian klik Install.Confirmation
    • Tunggu hingga proses instalasi selesai, dan Internet Information Services (IIS) Manager pun telah terinstal pada Server
  • Setting Web Deploy pada Server :
    • Download dan Install Hosting Bundle sesuai dengan versi .Net yang digunakan. Di sini saya menggunakan versi .Net Core 3.1.30Hosting Bundle
    • Restart sistem dengan menggunakan perintah berikut pada Command Line :

net stop was /y
net start w3svc

    • Buka Web Platform Installer, search kata kunci Web Deploy. Add Web Deploy (dalam hal ini saya memilih Web Deploy 3.6), kemudian klik Install.Web Platform Installer
    • Tunggu hingga proses Instalasi selesai. Kemudian buka IIS Manager, lalu pilih IIS Manager Permissions.IIS Manager Permissions
    • Klik Allow User, kemudian pilih user yang akan digunakan untuk mengakses server melalui Web Deploy pada Projects nanti. Kemudian klik OK.Allow User
    • Konfigurasi pada server hingga tahap ini selesai.
  • Create Publish Profile pada Project :
    • Klik kanan pada Project, kemudian klik Publish.Publish
    • Pilih Web Server (IIS), kemudian klik Next.Web Server IIS
    • Pilih Web Deploy, kemudian klik Next.Web Deploy Project
    • Isi data Server dengan format : {alamat_server}/MSDeployAgentService, Site name diisi dengan nama website yang kita buat pada IIS Server, Destination Url dengan Alamat dari Server, Username dengan User yang kita beri Permission pada IIS Server, Password yang digunakan untuk mengakses Server menggunakan Username yang disetting. Setelah semua selesai, kita dapat mengecek apakah konfigurasi yang kita berikan sesuai dengan klik Validate Connection. Bila sudah sesuai, maka akan tampil centang hijau seperti gambar di bawah. Kemudian klik Finish.Publish Config
    • Untuk deployment, kita cukup melakukan Publish dan Visual Studio akan otomatis melakukan Build dan Deployment langsung ke Server.

Mungkin hanya itu langkah-langkah untuk setting Deployment ke Server menggunakan Web Deploy. Untuk setiap kali akan melakukan Deployment/Publish, teman-teman hanya cukup melakukan Publish menggunakan konfigurasi yang telah kita setting, dan hasil build dari aplikasi pun akan langsung terdeploy ke Server.

Mungkin itu saja tulisan kali ini, semoga bermanfaat untuk teman-teman yang mengalami kesulitan dalam hal Deployment, khususnya pada ekosistem milik Microsoft. Dan Selamat Malam. 😁

Juli 7

Query untuk melihat structure table

Setelah melewati 3 hari yang melelahkan, ingin kembali menulis kembali. Yuph, 2 hari akhir pekan merenovasi rumah di bogor, dan sehari ke rumah sakit seharian untuk imunisasi anak. Tak habis bahan untuk saya ulas, kali ini saya ingin membagikan query untuk melihat bagaimana struktur sebuah tabel maupun tabel-tabel dalam database.

Langsung aja ke inti utama yang akan saya sharing. Jadi, ceritanya saya ingin membuat dokumentasi berupa Data Dictionary untuk semua database yang dipakai. Task ini saya berikan kepada developer saya saat ia sedang tidak terlalu berat task. Setiap point merupakan sebuah penjelasan untuk semua tabel yang ada dalam setiap database dimana di dalamnya terdapat penjelasan mana yang merupakan tabel PK, FK, apakah nullable, apa tipe data dan berapa lengthnya, dan apakah ia unik. Yuph, kira2 semacam itu, dan teman-teman dapat menggunakan query ini untuk mendapatkan data lainnya dari tabel-tabel tersebut tentunya.

Pada contoh kali ini, saya menggunakan database pada contoh-contoh saya sebelumnya yakni database Akademik. Untuk query database, teman-teman dapat mendownload query database pada contoh kali ini pada link berikut :

https://drive.google.com/file/d/1KYiT2H_uPhfzMDJ8ZZclxBy685uXUFs1/view?usp=sharing

Atau teman-teman dapat me-restore-nya dengan menggunakan file bak pada link berikut :

https://drive.google.com/file/d/1dm7TsHlJqpG1YaQHBnq7r2g0lAJCrLLd/view?usp=sharing

Saya asumsikan teman-teman sudah memiliki databasenya. Teman-teman akan melihat secara singkat struktur key seperti berikut :

Table Structure

Ada dua kasus yang akan saya gunakan saat ini :

  • Saya ingin melihat semua struktur pada tabel Siswa, maka query yang dapat digunakan sebagai berikut :

Maka hasilnya akan seperti berikut :

Get Structure Table

  • Saya ingin melihat semua struktur dari semua tabel yang ada pada database Akademik, maka query yang dapat digunakan sebagai berikut :

Maka hasilnya akan seperti berikut :

Get All Structure Table

Demikian sharing sedikit dari saya untuk mendapatkan semua struktur tabel yang ada. Mudah-mudahan bermanfaat buat teman-teman semua untuk mempermudah dalam mendapatkan informasi dari sebuah database terutama bagi yang sering berhubungan dengan database.

Sekian dari saya, terima kasih dan selamat beristirahat… 😀

Juni 27

Membuat Connection String dengan memanfaatkan file UDL

Halo semua. Pada malam ini saya ingin membagikan sebuah trik bagaimana caranya kita membuat sebuah koneksi ke database (tentunya pada contoh saya ke database SQL Server) dengan mudah dengan memanfaatkan sebuah file berfotmat udl. UDL sendiri merupakan sebuah tipe file yang menyimpan informasi koneksi database yang biasanya digunakan untuk melakukan testing terhadap sebuah koneksi tanpa harus melakukan coding terlebih dahulu. Langsung saya bagaimana caranya? Berikut langkah-langkah yang perlu dilakukan :

  • Buat sebuah file dan ubah tipe file tersebut menjadi berformat .udl

Udl File

Udl File 2

  • Double click file tersebut sehingga tampil tools Data Link Properties

Blank Data Link Properties

  • Masukkan koneksi yang diinginkan (di sini kita jg dapat memilih provider lain bila diinginkan pada tab Provider). Lakukan Test Connection hingga koneksi berhasil. Klik OK

Data Link Properties

  • Buka file udl tersebut dengan notepad dan dapat kita connection string sudah berhasil dibuat dapat kita manfaatkan untuk connection string database pada aplikasi kita

Connection String

Sekian trik singkat dari saya dan semoga bermanfaat dalam mempermudah kita untuk melakukan development sebuah aplikasi. Terima kasih dan selamat beristirahat… 😀

Juni 24

Query untuk mencari kolom berdasarkan value

Malam yang dingin, diiringi kopi hangat, suasana yang sangat cocok untuk berbagi. Hari ini saya mendapatkan sebuah request untuk mencari tahu mengapa permasalahan beberapa data yang diminta oleh client. Namun, saya bukan ingin membahas permasalahan apa yang terjadi, tapi dalam pencarian permasalahan tersebut saya dihadapkan pada sebuah permasalahan lain. Apakah itu? Jreng…jreng…hehe…

Yuph, data yang saya dapat ini berada pada tabel apa sih? Kalaupun dapat tabelnya, di kolom apa? Saya pun berinisiatif untuk membuat sebuah Stored Procedure untuk memecahkan masalah saya itu. Nah, pada tulisan saya kali ini, saya ingin membagikan Stored Procedure yang telah saya buat tersebut. Mungkin bisa jadi teman-teman mengalami permasalahan yang sama. Berikut query full Stored Procedure saya :

Di sini coba saya jelaskan beberapa parameter yang digunakan dalam Stored Procedure tersebut :

  • DatabaseName : Parameter ini sifatnya mandatory. Teman-teman harus mengisi pencarian data tersebut akan dilakukan pada database apa.
  • Value : Parameter ini bersifat optional dengan default value nya string kosong. Parameter ini diisi dengan value yang akan dicari.
  • TableName : Parameter ini bersifat optional dengan default value nya null. Parameter ini diisi dengan nama tabel tempat akan dilakukan pencarian. Bila teman-teman tidak menggunakan parameter ini, maka secara default pencarian dilakukan pada semua tabel yang ada pada database yang teman-teman isi.
  • TableSchemaName : Parameter ini bersifat optional dengan default value nya dbo. Parameter ini diisi dengan nama skema tabel tempat akan dilakukan pencarian.

Untuk contoh cara penggunaannya saya akan membagi dengan beberapa case berikut :

  • Kita ingin mencari data dengan value ‘Pusporenggo’ di database Akademik berada pada kolom dan tabel apa. Pencarian dilakukan pada semua tabel dengan schema default yakni dbo, sehingga kita dapat mengetahui semua table beserta kolomnya yang memiliki value tersebut. Maka perintahnya akan menjadi berikut :

    Dan hasilnya akan seperti berikut :
    Sample 1
    Maka jika kita lakukan perintah SELECT dengan filter pada kolom tersebut di tabel tersebut, maka hasilnya akan seperti berikut :
    Result Sample 1

  • Kita ingin mencari data dengan value ‘Pusporenggo’ di database Akademik berada pada kolom apa. Pencarian dilakukan pada tabel siswa dengan schema default yakni dbo, sehingga kita dapat mengetahui semua kolom yang memiliki value tersebut. Maka perintahnya akan menjadi berikut :

    Dan hasilnya akan seperti berikut :
    Sample 2
    Maka jika kita lakukan perintah SELECT dengan filter pada kolom tersebut di tabel tersebut, maka hasilnya akan seperti berikut :
    Result Sample 2

Bila teman-teman kesulitan untuk menyalin query Stored Procedure saya, teman-teman juga dapat melakukan download querynya pada link berikut :

https://drive.google.com/file/d/1ZydC2zpmp1wSlAyh0ZIfOCuEHCNUJHWo/view?usp=sharing

Akhir kata, semoga tulisan saya dapat bermanfaat khususnya bagi yang mengalami permasalahan yang sama. Terima kasih dan selamat beristirahat…. 😀

 

 

Juni 24

Menggunakan API Helper Swagger pada .Net Framework

Di malam yang sunyi ini, aku sendiri. Eh, ini mau menulis lirik lagukah? Tidaakkk…..

Maafkan ketidakjelasan saya, maklum malam ini saya sedang sendiri di rumah. Istri dan anak saya sedang menginap di rumah mertua.

Lanjut ke inti tulisan aja. Jadi, malam ini saya ingin membagikan ilmu, bagaimana cara menggunakan Swagger sebagai API Helper untuk project API kita. Untuk yang ingin mengetahui lebih lanjut apa itu Swagger, bisa buka link berikut :

https://swagger.io/

Selanjutnya, saya akan menjelaskan langkah-langkah yang perlu dilakukan untuk menggunakan Swagger ini. Sebelumnya perlu diingat, di sini saya coba mempraktekkan penggunaan Swagger untuk project API versi .Net Framework dan saya sendiri menggunakan .Net Framework 4.6.1 untuk tulisan ini. Berikut langkah-langkahnya :

  • Buat sebuah Project API, create nama project “API” dan tunggu hingga proses selesai seperti berikut :

Create Project API

  • Buka Package Manager Console dan pastikan project yang terpilih adalah project API yang akan dipasang Swagger. Lalu ketikkan perintah Install-Package Swashbuckle kemudian tekan enter. Tunggu hingga proses instalasi paket selesai :

Install Package

  • Pastikan SwaggerConfig sudah ada pada Folder App_Start seperti berikut :

SwaggerConfig

  • Buka property Project. Kemudian pilih Build. Aktifkan XML Documentation file dengan memberi tanda centang :

XML Documentation File

Proses pemasangan sudah berhasil sampai di sini. Selanjutnya kita dapat melakukan testing dengan menjalankan API kita. Dan saat sudah berjalan, kita tambahkan swagger pada path (untuk kasus saya, path menjadi berikut : http://localhost:57897/swagger) sehingga Swagger UI dapat terpanggil seperti berikut :

Testing Swagger

Jika kita klik pada List Operations, kita akan melihat semua endpoint/fungsi pada API kita dan melakukan testing pada setiap endpoint yang ingin kita tes.

List OperationsDemikian tutorial singkat saya pada malam ini. Harap dimaklum karena saya juga sepertinya sudah mulai mengantuk (maklum, ternyata sudah berganti hari, hehe…). Semoga tulisan ini bermanfaat khususnya bagi yang sedang mengerjakan project API namun bingung untuk menyiapkan sebuah UI untuk keperluan testing maupun sebagai dokumentasi project.

Nantikan artikel selanjutnya dan terima kasih… 😀

Juni 23

Function SQL untuk generate random date

Sore menjelang malam ini waktunya untuk menulis kembali. Kali ini saya ingin membagikan sebuah function yang saya buat untuk generate random date. Kok bisa ada keinginan untuk buat function ini? Jadi ada sejarahnya nih kenapa buat. Jadi gini, beberapa hari yang lalu, saya ada sebuah task untuk mengupdate beberapa data (kolom bertipe date) menjadi berisi bermacam-macam tanggal dalam 1 bulan. Data ada kisaran 1.500 jumlahnya (gile aja kan klo update satu2). Langsung aja, ini function yang saya buat untuk generate random date :

Namun, sebelum dapat menggunakan fungsi tersebut, teman-teman harus membuat sebuah view untuk melakukan generate GUID. Berikut view yang saya buat :

Nah, untuk penggunaanya gimana nih? Jadi teman-teman bisa bervariasi menggunakannya :

  • Mengisi kedua parameter dengan value yang diinginkan

Custom Value kedua parameter

  • Mengisi parameter pertama dengan default value (min date)

Dafault value pada parameter pertama

  • Mengisi parameter kedua dengan default value (getdate)

Dafault value pada parameter kedua

  • Mengisi kedua parameter dengan default value (min date pada parameter pertama & getdate pada parameter kedua)

Dafault value pada kedua parameter

Mungkin sekian dulu tulisan kali, pendek namun mudah2an bermanfaat. Terutama bagi yang mengalami kasus yang sama.

Terima kasih & selamat beristirahat… 😀

Juni 19

Memindahkan commit git yang akan di-push dari satu branch ke branch lainnya

Malam yang dingin saat hendak berakhir pekan cocok untuk menuliskan sebuah artikel. Eh, ini curhat atau apa ya? Datar amat, hehe…

Oke, pada malam yang memang sudah terlalu larut malam ini, saya ingin membagikan sebuha tips bagaimana caranya memindahkan sebuah commit-an atau beberapa commit-an dari suatu branch untuk kemudian di-push ke branch lainnya. Ya, tentu saja tips ini saya tujukan untuk pengguna source control git manapun. Baik itu pengguna github, gitlab, bitbucket, ataupun lainnya yang menggunakan engine git sebagai source controlnya.

Lalu bagaimana saya sampai kepikiran untuk menuliskan artikel perihal ini ya? Jadi ceritanya begini. Pada suatu waktu, saya mendapatkan anggota baru pada tim saya (sekarang ini posisi saya sebagai Team Leader). Saya jelaskan bagaimana SOP melakukan pekerjaan pada tim saya tersebut (tentu saja best practice untuk development di tim saya). Tentu semua pengenalan baik itu flow bisnis aplikasi maupun segala macam SDLC di sini, dan apapun itu yang terkait dengan pekerjaan dalam tim saya. Di tim saya, saat hendak melakukan development, saya selalu meminta kepada anggota tim untuk melakukan clone terhadap branch yang sudah saya buat sesuai dengan Story yang ada (di sini saya melakukan branching untuk masing-masing Story saat setiap kali sebuah Story berikut Subtask-subtasknya akan dikerjakan). Pada suatu hari, saya berikan task kecil (sebagai pengenalan untuk anggota tim baru). Beberapa hari kemudian dia meminta saya melakukan concall (conference call) karena sepertinya dia lupa untuk melakukan checkout terlebih dahulu. Dan parahnya lagi, dia baru sadar kalau dia melakukan beberapa commit yang belum di-push (pada saat itu 5 commit-an dengan banyak perubahan code di beberapa file) pada branch yang salah (branch development bukan branch dari Story). Dia hendak akan melakukan perubahan ulang, namun saat itu saya cegah karena saya dapat memindahkan commit-an tersebut ke branch yang seharusnya. Alhasil, dengan menggunakan TeamViewer saya melakukan remote desktop laptopnya (saat itu kita sedang WFH karena Pandemi). Dan commit-an nya pun berhasil saya selamatkan tanpa harus menulis ulang perubahan yang telah dilakukan dari awal.

Lalu, bagaimana cara saya melakukannya?

Berikut kita akan coba hal serupa seperti yang saya lakukan pada kasus tim saya :

  • Di sini kita coba pada sebuah project yang sudah saya siapkan. Teman-teman dapat meng-clone project saya pada github saya di :

https://github.com/Agunahwan/api1

  • Jika teman-teman sudah melakukan clone project, maka ketika membuka project tersebut akan terlihat seperti ini :

API 1

  • Kita buka ValuesController dan lakukan perubahan pada function Put dengan mengganti nilai balikan dan isinya menjadi seperti berikut :

Change Code

  • Pastikan tidak terjadi error saat rebuild atau build ulang solution. Kemudian kita lakukan commit seperti berikut :

Build Success

Change Put

Commit success

Jika teman-teman melakukan clone project secara default, maka branch dari project tersebut akan berada pada branch master. Di sini kita akan mencoba untuk memindahkan semua commit-an yang ada pada branch master untuk kemudian di-push kepada branch development pada server git. Pada langkah-langkah berikutnya merupakan proses mulai pemindahan commit-an nya :

  • Rename branch master lokal kita dengan branch development. Disini kita rename terlebih dahulu branch master agar di langkah selanjutnya kita dapat dengan mudah menemukan branch mana yang akan kita pindahkan. Terlebih bila dalam suatu project telah memiliki banyak sekali branch yang ada, baik fitur, bugs fixing, maupun lainnya. Jika branch sudah di-rename, maka akan terlihat seperti berikut :

Rename Branch

Rename Result

  • Teman-teman buka folder solution. Di sana teman-teman akan melihat sebuah folder bertipe hidden dengan nama .git

Folder git

  • Buka folder .git dan edit file config

Config File

  • Cari branch development dimana memiliki remote origin & merge refs/heads/master. Ubah refs/heads/master menjadi refs/heads/development pada branch development kemudian simpan :

Branch Development

Update Branch Development

  • Saat kita kembali pada Visual Studio, maka akan terlihat bahwa kita sudah berada pada branc development di lokal yang terhubung dengan branch development pada server :

Branch Development VS

  • Kita lakukan synchronize (fetch=>pull=>push dalam 1 perintah) pada git :

Synchronize git

  • Jika teman-teman melihat kembali history branch development pada remote/server, maka teman-teman akan melihat bahwa commit-an kita tadi yang awalnya berada pada branch master, sudah masuk pada branch development pada server :

History Remote Development

Demikian tips dari saya berdasarkan pengalaman yang dialami tim saya (sebenarnya saya juga pernah mengalami hal yang sama sebelumnya, hehe…). Semoga memberikan manfaat buat teman-teman sekalian terkhusus bagi yang mengalami hal yang sama.

Terima kasih dan selamat malam… 😀