Artikel Tentang Komputer

Mengupdate data di Drupal REST server dgn Swift

Setelah pada tulisan-tulisan sebelumnya dibahas bagaimana cara login, mengambil data, menghapus data, membuat data, maka tulisan ini membahas bagaimana caranya mengupdate data dengan REST service di Xcode Swift.

Insert Data ke Drupal REST Server dengan Swift

Proses INSERT data mirip-mirip dengan proses DELETE dalam artia kita mesti mengirimkan session information kita beserta token ke server. Namun, pada insert data kita menggunakan httpMethod = POST. Jika dalam GET dan DELETE kita tidak memerlukan body data, maka pada proses INSERT kita memerlukan body data. Body data ini bisa dituliskan dalam beberapa bentuk misalnya json, xml dan url-encode-form, dll. Tetapi dalam tulisan ini hanya dibahas format JSON.

Menghapus data di Drupal REST Server dgn Swift

Perhatian! Ada perubahan pada module Service terbaru, di mana sekarang untuk semua operasi create, update dan delete diharuskan mengirimkan token (X-CRF-Token). Token ini dikirimkan pada saat login bersamaan dengan pengiriman session name dan id. Oleh karena itu penting kita simpan informasi ini pada suatu variable untuk kemudian kita kirimkan kembali pada setiap action yg membutuhkannya. Berikut di bawah ini perubahan method login untuk menyimpan informasi token dan session ini.

Mengambil data dari Drupal REST server dgn swift

Di bawah ini adalah code untuk mengakses resource yang terdapat pada REST server Drupal Service. Menggunakan method GET dengan parameternya adalah jenis content type nya. Dalam contoh di bawah, kita hanya mengambil data node yang merupakan content_type article.

Mengakses Drupal REST service dgn Session Authentication

Pada artikel sebelumnya dibahas bagaimana cara mengakses resource di Drupal REST Service dengan Basic Authentication. Pada tulisan ini akan dibahas akses dengan menggunakan Session Authentication.

Dengan Session Authentication, maka pertama kali mengakses server, user harus melakukan login. Jika login berhasil, maka iOS akan otomatis menyimpan informasi Sesssion ini dan otomatis mengirimkannya setiap kali kita mengakses REST server ini, sampai session ini expire atau user logout.

Berikut ini adalah code method untuk login :

 

Menggunakan Keychain dgn Swift

Username dan Password, kalau memang harus disimpan di device disarankan menggunakan Keychain. JANGAN disimpan menggunakan NSUserDefault maupun CoreData. Dengan sedikit googling ketemu ada yang sudah membuat wrappernya dalam bahasa Swift, di sini. Langsung saja saya tuliskan code untuk menggunakannya di bawah ini:

 

Drupal REST service Basic Authentication dgn Swift

Untuk mengakses REST server yang memerlukan authentication, maka kita memerlukan user dan password. Tergantung bagaimana user dan password ini dikirimkan ke server, ada beberapa cara proses authentication ini yaitu:

  • Session Based
  • Basic Authentication
  • oAuth 2 legged
  • oAuth 3 legged

Masing-masing ada kelemahan dan keunggulannya.

Mengakses Drupal REST Service dari iOS dgn swift

Untuk mengakses internet iOS menyediakan dua cara yaitu synchronous dan asynchronous. Dengan cara synchronous artinya request URL service harus dilakukan secara sequential, artinya program kita akan berhenti bekerja sampai request selesai atau gagal baru bisa lanjut. Dalam tulisan ini saya menggunakan synchronous request.

Check Server Availability dari Swift

Pata tulisan sebelumnya fokusnya adalah memastikan device kita (iPhone atau iPad) tersambung ke jaringan. Namun demikian, sebetulnya hal tersebut belum bisa memastikan apakah device kita bisa mengakses suatu server. Misalnya server yang melayani web service.

Reachability Pada Swift

Dalam setiap pemrograman iOS yang menggunakan jaringan, baik untuk mengirim maupun menerima data, langkah pertama adalah memastikan iOS device (iPhone maupun iPad) memiliki sambungan ke Internet. Jika tidak tersambung aplikasi bisa menyarankan user untuk melakukan setting yang dibutuhkan untuk menyalakan internetnya atau membiarkan aplikasi berjalan tanpa Internet. Kegiatan pemeriksaan sambungan internet ini disebut Reachability.

Halaman