Showing posts with label API. Show all posts
Showing posts with label API. Show all posts

Saturday, June 23, 2018

REST API tiruan dengan json-server

Hallo bloger yang "Ounchhh",
pada kesempatan kali ini saya akan membagikan sesuatu yang "mainstream" dikalangan developer khususnya back-end ataupun front-end, ya semoga bermanfaat guys...
Singkat cerita saya membutuhkan sebuah URL yang akan mengembalikan hasil json ketika saya tembak pakai Postman untuk keperluan pengujian service, jurus andalan pun dikeluarkan(googling) alhasil menemukan sebuah artikel dari om Roy Agasthyan tentang cara membuat rest-api tiruan dengan json-server(kalau penasaran bisa dilihat link di bawah ya)

Tanpa Ba bi bu, kita langsung ke proses nya guysss,
  • Install nodeJS (npm)
  • Setelah itu kita install package-nya dengan npm install -g json-server
  • Buat file dummy info.json
  • Di direktori yang sama, kita jalankan json-server info.json (lihat gambar 1)
  • Selamat Rest API tiruan sudah jalan dan siap digunakan
Gambar 1. menjalankan json-server

Gambar 2. Contoh info.json
 Untuk melihat hasil kita tinggal menembak link yang ada digambar 1 dengan postman
Gambar 3. Contoh method GET
Gambar 4. Contoh method POST

Gambar 5. Hasil POST
Untuk method DELETE tinggal menambahkan /id_yang_akan_didelete, tetapi untuk yang update metode yang digunakan adalah PATCH dengan tambahan /id_yang_akan_diupdate. Jika ingin menambahkan URL tinggal edit file info.json, selain itu juga tersedia log di terminal seperti digambar 6.
Gambar 6. Contoh log
Yah, sekian dulu guys, untuk informasi yang lebih detail bisa mengunjungi ini (sangat lengkap) dan terima kasih untuk artikel Roy Agasthyan sebagai pemicu penulis. Sebagai bahan pertimbahan penggunaan REST-API tiruan bisa menggunakan mockAPI.

terima kasih


Sunday, March 18, 2018

Introduce Sails.js

Hai gais, sebelumnya gue udah nge-share ke kalian salah satu framework node.js yaitu express.js. Nah untuk kali ini gue akan share framework lain yang bisa kalian gunakan selain express.js yaitu sails.js .

Hmmm sails.js ?
Sails.js adalah mvc framework yang paling populer untuk node.js. Sails.js memiliki berapa fitur, diantaranya:
  1. Sails.js mempermudah kita untuk menggunakan WebSocket, karena sails.js sendiri sudah menambahkan fitur WebSocket saat kita menginstall sails.js,
  2. Salis.js juga disupport oleh beberapa database sperti MySQL, PostgreSQL, MongoDB, Redis, dan Local disk,
  3. Yang membuat gue terkesima adalah Salis.js hadir dengan Auto-generated API nya yang membuat kita sangat mudah dan cepat untuk membuat API.
Oke kali ini gue mau membahas yang paling membuat gue terkesima yaitu membuat API pada sails.js, yuk kita buktikan 😉

  1. Pertama install sails dengan command :
    npm install sails -g
  2. Lalu buat folder project dengan command :
    sails new demo
    dengan command tersebut kita telah membuat direkotri baru untuk project sails kita.
  3. Lalu kita masuk kedalam folder yang telah kita buat dengan command :
    cd demo
  4. Kemudian kita generate API kita dengan command :
    sails generate api member
    dengan command tersebut akan membuat 2 file baru yaitu di api/models/Members.js dan api/controller/MemberController.js
  5. Lalu ubah file Members.js dengan script berikut :
  6. Okeoce kita sudah selesai membuat API nya, kita jalankan aplikasi kita dengan command :
    sails lift
    setelah berhasil menjalankan aplikasi kita kuy kita cek di postman :
  • API post data
  • API get data

  • API update data
  • API delete data

Gimana gais ??? cepat dan mudah banget kan 😎. Semoga bermanfaat yaaa 😇

Referensi :
https://sailsjs.com/
https://devdactic.com/rapid-development-with-sailsjs/


How-to: Building RESTful API on Ruby on Rails

Halo semua, kembali lagi di Blog Nostra!

Kali ini kami akan membagikan tentang bagaimana cara mengimplementasi RESTful API pada Ruby on Rails. Sebelum memulai, kami akab memberikan beberapa informasi mengenai REST API dan Ruby on Rails itu sendiri.

- What is Ruby on Rails?
Ruby on Rails (disingkat menjadi Rails) adalah framework yang ditulis dengan bahasa pemrograman Ruby, yang diperkenalkan pertama kali pada tahun 2004. Rails termasuk server side, yang berarti semua proses dijalankan pada server, bukan pada client's browser. 

- What is RESTful API?
RESTful API adalah application program interface yang menggunakan HTTP request untuk mengolah data. Pertama kali diperkenalkan pada tahun 2000 oleh Roy Fielding. REST API banyak digunakan oleh web service development.

Kenapa sih menggunakan Rails? Dari segi development, less painful, karena hanya dengan sebuah script, bisa me-generate model dan controller nya. Selain itu, Rails juga mudah dibaca, bahkan oleh orang yang tidak memiliki dasar pemrograman.

Nah langkah-langkah untuk menggunakan Rails adalah:
- Install Ruby
brew install ruby
- Install Rails
brew install rails
- Konfigurasi database (jika diperlukan)
- Run Rails
rails s

note: jika ingin menambahkan dependency pada Gemfile, lakukan `bundle install` untuk me-include dependency yang baru anda masukan

Script untuk membuat Model:
`rails g model {nama model} {nama variable}:{tipe data} {nama variable}:{tipe data} ...`

Script untuk membuat Controller:
`rails g controller {nama controller}`

Setelah men-define apa yang akan dilakukan oleh controller, saatnya mendefinisikan route untuk method-method yang ada di controller. berikut salah satu contoh controller dan route nya:



Wala, sudah jadi deh RESTful API menggunakan Rails! Selamat mencoba!
Keep smart, keep code, and make money!

Anatomy of the ACORD TXLife XML standard

Overview

Pada blog kali ini saya akan menjelaskan tentang ACORD.
Sebagaimana kita tahu bahwa pada umumya saat ini banyak perusahaan yang melakukan integrasi secara internal maupun exernal (antar perusahaan), integrasi data yang dimaksud bisa jadi merupakan pertukaran data antar perusahaan atau suatu perusahaan membutuhan data dari perusahaan lain atau banyak perusahaan membutuhkan data dari satu perusahaan.
Sebagai contoh sebut saja kita memilki 3 perusahaan Asuransi yaitu perusahaan A, B, dan C yang terhubung ke satu BANK yang sama sebut saja Bank X. Perusahaan A, B dan C pastinya memiliki data Klien atau nasabah yang terdaftar memiliki Asuransi dan proses pembayaran menggunakan bank apa pada perusahaan tersebut. Bagaimana si Bank X dapat mengetahui Klien atau nasabah mana saja yang menggunakan Bank mereka sebagai pembayar asuransinya? Maka tentu saja si BANK X perlu mengambil data dari perusahaan Asuransi  tersebut. Pertukaran data ini bias kita sebut sebagai salah satu contoh integrasi data.
Proses integrasi data dari Bank X ke masing-masing perusahaan asuransi pasti memiliki format/model data  yang berbeda-beda karena masing-masing perusahaan asuransi memiliki model data sendiri. Akibatnya ketika si bank x ingin mengambil data nasabah dari asuransi A, si Bank X harus membuat melakukan integrasi dengan menggunakan model data si A atau si perusahaan asuransi yang menyesuaikan ke si bank X, begitu pula dengan yang lain. Dengan kata lain si Bank/Asuransi akan membuat model data untuk setiap perusahaan Asuransi/Bank yang ingin diambil datanya. Untuk menghindari hal itu adalah sangat baik apabila setiap perusahaan asuransi tersebut disamakan model datanya sehingga ketika ada Bank atau pihak lain yang ingin melakukan integrasi data dengan perusahaan asuransi tersebut maka si bank atau pihak lain tersebut tinggal menggunakan model data yang sama. Nah, proses menyamakan model data setiap perusahaan asuransi inilah yang di sebut sebagai Standard data integration.
Untuk memudahkan proses penyamaan model Data di bidang asuransi maka muncullah ACORD. Apa itu ACORD?
ACORD (Association for Cooperative Operations Research and Development) merupakan Suatu Asosiasi yang bergerak dibidang pengembangan, research terkait standard data integration dibidang Asuransi.
Berikut adalah beberapa bentuk/Format ACORD Data Model :
-          EDI (Electronic Data Inerchange)
-          XML (Extensible Markup Language)
-          Forms
Pada kesempatan ini saya akan menjelaskan lebih terkait Data Model dalam bentuk XML. Data Model bentuk XML merupakan data model yang lebih umum kita gunakan. Nah ACORD, untuk perusahaan Asuransi telah membuat standard data model XML dan bisa kita download. Standard XML adalah ACORD TXLife Standard.

Structure data TXLife

1.     Structure data 1 : Structure Utama
Ket :
  • <TXLife> : Merupakan root node dari ACORD TXLife XML dokumen.
  • <TXLifeXXX> : XXX bisa diubah menjadi Request (digunakan ketika kita melakukan intiating transmission atau request data atau submit data), Response (digunakan untuk menampung response dari Request jiak bersifat synchronous tapi jika tidak memiliki resonse maka TXLifeResponse tidak perlu), Notify(digunakan ketika kia ingin mengirimkan notifikasi ke si pengirim atau requester status pesan yang dikirimkan).
  • <OLife> Adalah element yang menampung data atau pesan yang akan di kirim dan di terima.
2.     Structure data 2 : Structure yang bisa di tambahkan pada Structure Utama
Ket :
  • <TransRefGUID> dgunakan sebagai unique key untuk mengidentikasi suatu request dan biasa di kirimkan juga di response nya untuk menandakan/pengenal suatu request atau resonse.
  • <TransType> digunakan untuk menampung tipe transaksi suatu message
  • <TransExeDate> dan <TransExeTime> digunakan sebagai penampung waktu lengkap peng-eksekusian suatu message.
3.     Structure data 3 : Strucuture body OLife
Ket :
  • Untuk Asuransi terdapat 2 Top Level Object yang umum digunakan yaitu <Holding> dan <party>
  • <Holding> digunakan untuk menjelaskan atau represents  semua holding terkait financial Pada umumnya terkait Polis asuranasi, Investasi, pinjaman dan Hipotek.
  • <Party> digunakan untuk menjelaskan detail biodata pengguna asuransi, baik personal atau pribadi  maupun perusahaan.
  •  <Relation> digunakan untuk menjelaskan hubungan dari Top Level Object.
  • Berikut adalah penjelasan terkait element yang ada pada <Relation>


Tantangan Penerapan TXLife

Beberapa tantangan dalam penerapan standard ini adalah :
Structure bawaan yang disediakan memiliki banyak element atau structure data yang ukurannya bisa beberapa mega dan belum tentu semua element itu kita gunakan. Memang elementnya adalah optional tapi jika kita ingin mengikuti standard maka kita sebaiknya tetap menggunakan element standard yang telah disediakan. Hal ini akan berpengaruh ke waktu eksekusi yang dibutuhkan untuk mengeksekusi data model tersebut.
Tantangan lainnya adalah jika semua structure data model yang sudah ada sebelumnya belum berbentuk seperti Acord data model maka ada dua kemungkinan yang harus kita lakukan untuk dapat meng-consume Acord data model adalah :
  1. Kita harus membuat kembali sebuah system baru mulai dari datasources, service dan lain-lain dengan mengikuti ACORD Data Model dan hal itu pasti termasuk rumit.
  2. Pilihan lain adalah melakukan transformasi data schemas antara schemas yang sudah ada dengan schemas ACORD. Transformasi dilakukan menggunakan XSLT File. Kesulitannya adalah kita harus memapping satu-satu setiap element dari Schemas yang sudah ada dengan element schemas ACORD, mungkin kita sudah bisa membayangkan betapa banyak element yang harus kita mapping dan berapa lama waktu yang akan kita habiskan unuk bisa melakukan mapping tersebut.
Yah mungkin sejauh ini dulu yang bisa saya jelaskan terkait ACORD, semoga berguna dan menambah wawasan kita.

Referensi :


Wednesday, March 14, 2018

Integrasi Mock API dengan Aplikasi

Nah pada kesempatan di pertengahan maret 2018 kali ini, gue pengen berbagi gimana cara sih integrasi dari MockAPI kedalam aplikasi kita, just for info postingan gue kali ini lanjutan dari postingan pengenalan MockAPI dari mas Rukaan dan dapat di lihat disini :


Setelah lu bikin akun dan resource, lu bisa lihat method dan penggunaan apa saja yang harus di penuhi untuk mengeksekusi resource API yang sudah anda buat.

( method dan cara penggunaannya )

Setelah lu buat segala macam API tersebut lu tinggal panggil di aplikasi lu dengan HTTP protocol :


( memanggil mockAPI menggunakan vue.js )

dan Method nya lu bisa panggil menggunakan ajax ataupun lainnya.

( nambahin method untuk di terapkan di aplikasi ( service ) )

dan jangan lupa lu binding ke halaman HTMLnya, masing masing framework berbeda beda caranya ( angularjs, angular, react.js, vue.js, dll ) , dan apabila ingin menggunakan method seperti POST, PUT, dan DELETE, dapat di masukkan terlebih ke dalam function serta function tersebut baru di integrasiin ke HTMLnya beserta param yang akan di lempar :



( integrasi ke html menggunakan framework vue.js )


( data yang dilempar sebagai parameter untuk di integrasikan kedalam function )

dan setelah lu ngelakuin hal di atas, bisa di coba di aplikasi yang sedang anda jalankan dan develop :


( tampilan aplikasi dengan GET yang sudah di integrasikan dengan service API dari mockAPI )


dan di bawah ini contoh apabila menggunakan method POST :


( Tampilan pengisian form untuk di add )

Dan dibawah ini adalah hasil setelah action di atas :


( Tampilan setelah di add )

Cukup mudah bukan ?? semua yang membatasi adalah pengetahuan dari diri anda sendiri.
jadi.. keep coding and keep learning.

Sekian Postingan saya dalam kesempatan kali ini.

Reference :--------------------


Wednesday, January 24, 2018

Quick Back End. Membuat API Sederhana dalam 10 menit dengan MockAPI

Hai Geeks

Di posting pertama tahun 2018 ini kita akan mencoba hal simple, dalam waktu kurang dari 10 menit kita akan membuat API sederhana tanpa ngoding sama sekali dan fully function dengan MockAPI.

Langkah pertama login, bisa menggunakan pilihan email biasa, authentikasi email yang terintegrasi GMail ataupun Github




Langkah kedua, buat project sebagai grouping beberapa API yang akan digunakan dalam 1 project


Langkah ketiga, buat resource. Resource name adalah endpoint nya dan diibaratkan nama tabelnya. Schema adalah response body sekaligus request body dan diibaratkan nama kolomnya


Langkah keempat, generate data dummy dengan mengubah angka disebelah resource. Dapat generate hingga 100 data dummy


Terakhir, Silahkan coba endpoint tersebut di Postman untuk GET,  POST,  PUT dan DELETE

Kelebihan mockAPI
- Mudah
- Cepat
- Fully Function
- Tanpa ngoding back end
- Bisa menggunakan template

Kelemahan
- Tidak bisa yang kompleks
- Bisa diakses publik

Selamat mencoba


Saturday, December 16, 2017

Google Cloud Vision API


Google Cloud Vision API merupakan sebuah service dari Google Cloud Platform (GCP) yang bisa memberikan analisis terhadap suatu gambar. API ini dirilis pada 18 Mei 2017 dengan teknologi Machine Learning dan Big Data yang menjadi engine dibelakangnya.  API ini tersedia gratis untuk 1000 hit/bulan, jika melebihi itu akan terkena biaya yang sudah di tentukan oleh google (link).

Fiture yang diberikan oleh API ini adalah sebagai berikut:
Label Detection
Mendeteksi konten apa saja yang terkandung dalam suatu gambar, misal nya seperti terdapat mobil, motor, hewan, dll.

Face Detection
Mendeteksi muka yang terdapat dalam gambar. Diberikan juga analisis mengenai expresi dan mood wajah tersebut.

Explicit Content Detection
Mendeteksi apakah terdapat konten dewasa didalam suatu gambar

Logo Detection
Mendeteksi logo yang terdapat pada gambar, dan mengenalinya secara langsung sepertu logo Toyota, Honda, BMW, HP, dll.

Landmark Detection
Mendeteksi sebuah bangunan landmark yang terdapat di dalam sebuah foto, seperti Monas, Eiffel, dll.

Optical Character Recognition (OCR)
Mendeteksi text yang ada dalam sebuah gambar. Jadi bisa kita gunakan untuk membaca data dari foto scan KTP, SIM, dll.

Image Attributes
Memberikan info mengenai warna dominan dari suatu gambar, crop hint, dll.

Web Detection
Memberikan info mengenai website yang memiliki atau menggunakan gambar yang sama dengan gambar ini.

Cara Kerja

Aplikasi kita akan mengupload atau mengirimkan gambar ke API ini, dan akan mendapatkan response yang dalam bentuk JSON nya seperti berikut:


How To

1. Yang diperlukan sebelum bisa menggunakan API ini adalah memiliki account GCP.

2. Selanjutnya adalah membuat sebuah project di GCP, dan me-enable API ini untuk project tersebut.








3. Aplikasi kita perlu GOOGLE_APPLICATION_CREDENTIALS Key untuk bisa menggunakan API ini. Jadi kita perlu menggenerate nya terlebih dahulu.



Pilih type JSON, dan saat kita klik Create maka browser akan mendownload sebuah file.


4. Setelah mendapatkan key, kita set environment variable.
Untuk MacOS dengan menggunakan:
 export GOOGLE_APPLICATION_CREDENTIALS=/PATH/TO/KEY/FILE

Untuk Windows bisa dengan mensetup Environment Variable, dengan Variable "GOOGLE_APPLICATION_CREDENTIALS" dan Value "C:\\PATH\TO\KEY\FILE"


Demo

Pada demo kali ini kita akan menggunakan java, kita bisa menggunakan Maven atau Gradle untuk menghandle dependensi library nya.
Maven:
 <dependency>
 <groupId>com.google.cloud</groupId>
 <artifactId>google-cloud-vision</artifactId>
 <version>1.14.0</version>
</dependency>
Gradle:
 compile 'com.google.cloud:google-cloud-vision:1.14.0'
SBT:
 libraryDependencies += "com.google.cloud" % "google-cloud-vision" % "1.14.0"


Berikut adalah sample source code dari sebuah method yang menggunakan Cloud Vision API yang sudah saya modifikasi untuk menggunakan fiture Label, OCR, dan Face.
Untuk contoh asli nya bisa di dapat dari dokumentasi google (https://cloud.google.com/vision/docs/reference/libraries)
 
public JSONObject test(DataVO dataVO) throws Exception {

    JSONObject jsonObject = new JSONObject();

    // Inisiasi
    try (ImageAnnotatorClient vision = ImageAnnotatorClient.create()) {

        // Memproses image file ke memory
        Path path = Paths.get(dataVO.getFilePath());
        byte[] data = Files.readAllBytes(path);
        ByteString imgBytes = ByteString.copyFrom(data);

        // List feature yang diinginkan
        Feature feat = Feature.newBuilder()
                .setType(Type.LABEL_DETECTION)
                .build();
        Feature feat2 = Feature.newBuilder()
                .setType(Type.FACE_DETECTION)
                .build();
        Feature feat3 = Feature.newBuilder()
                .setType(Type.TEXT_DETECTION)
                .build();
        List<Feature> featureList = new ArrayList<>();
        featureList.add(feat);
        featureList.add(feat2);
        featureList.add(feat3);

        // membuat request yang terdiri dari image dan list feature yang diinginkan
        Image img = Image.newBuilder().setContent(imgBytes).build();
        AnnotateImageRequest request = AnnotateImageRequest.newBuilder()
                .addAllFeatures(featureList)
                .setImage(img)
                .build();


        // Builds the image annotation request
        List<AnnotateImageRequest> requests = new ArrayList<>();
        requests.add(request);


        // Memproses image file
        BatchAnnotateImagesResponse response = vision.batchAnnotateImages(requests);
        List<AnnotateImageResponse> responses = response.getResponsesList();


        // Mengolah respon dari Vision API
        for (AnnotateImageResponse res : responses) {

            List<String> labelList = new ArrayList<>();
            for (EntityAnnotation annotation : res.getLabelAnnotationsList()) {
                Map<Descriptors.FieldDescriptor, Object> labelMap = annotation.getAllFields();
                Iterator it = labelMap.entrySet().iterator();
                while (it.hasNext()) {
                    Map.Entry pair = (Map.Entry)it.next();
                    if (pair.getKey().toString().equals("google.cloud.vision.v1.EntityAnnotation.description")){
                        labelList.add(pair.getValue().toString());
                    }
                }
            }

            jsonObject.put("Label", labelList);

            TextAnnotation text = res.getFullTextAnnotation();
            jsonObject.put("FullTextAnnotation", text.getText());

            jsonObject.put("FaceAnnotationsCount", res.getFaceAnnotationsCount());
        }
    }

    return jsonObject;
}

image yang akan di gunakan untuk test kali ini adalah gambar berikut:

dan hasil yang kita dapatkan adalah:
 
{
    "FaceAnnotationsCount": 0,
    "Label": [
        "text",
        "cartoon",
        "font",
        "line",
        "human behavior",
        "product",
        "product design",
        "area",
        "communication",
        "conversation"
    ],
    "FullTextAnnotation": "WE ARE\nLOOKING FOR\nBack-End DeviOS Dev\nOracle SOA & Webcenter Dev\nSend your CV to\njobs@nostratech.com\n"
}

Bisa dilihat bahwa text yang terdapat di gambar terdetect dengan baik meskipun ada character \n sebagai penjelasan bahwa di aberganti baris.

Sekian demo Google Cloud Vision API dari saya, silahkan berkreasi dengan fitur-fitur yang di sediakan oleh API ini.



Tuesday, June 14, 2016

Register WSDL SOAP API via Policy Studio di OAG

Setelah sebelumnya kita sudah berhasil membuat filter "IP Address" dan "Throttling" menggunakan policy healthcheck, sekarang kita akan coba mendaftarkan SOAP web service ke OAG dengan menggunakan policy studio.

Untuk lebih jelasnya simak dan ikuti langkah-langkah berikut:
  1. Buka console policy studio, secara default akan seperti gambar di bawah
  2. Persiapkan wsdl yang akan kita daftarkan ke dalam OAG. Kita bisa menggunakan global weather wsdl atau bisa menggunakan wsdl yang kita pernah miliki sendiri. Untuk global weather dapat dilihat di url berikut http://www.webservicex.com/globalweather.asmx?wsdl
  3. Kembali ke policy studio, plih Business Services --> Web Service Repository --> Web Services --> Register Web Service
  4. Akan muncul halaman Load WSDL, kemudian inputkan WSDL URL sesuai dengan url yang ada di langkah no 2, kemudian pilih Next
  5. Klik button Select All untuk memilih semua WSDL operations
  6. Klik Next pada langkah WS-Policy Options
  7. Pada langkah Deploy Policy, kita akan menentukan policy wsdl global weather akan di deploy ke path yang mana, pilih Default Services agar wsdl tersebut nanti diakses dari port 8080 
  8. Akan muncul halaman summary dari hasil deploy wsdl yang sudah kita lakukan sebelumnya
  9. Setelah proses deploy berhasil maka secara otomatis OAG akan men-generate beberapa komponen seperti berikut:
    • path policy location yang ada di Listener --> Oracle API Gateway --> Default Services --> path
    • Global weather Web Services yang ada di Business Service --> Web Service Repository --> Web Services --> GlobalWeather
    • Global weather policy yang ada di Policies --> Generated Policies --> Web Services.GlobalWeather --> /globalweather.asmx
  10. Langkah terakhir adalah deploy dengan cara klik F6 atau klik tombol pojok kanan atas
  11. Test untuk melihat hasil nya dengan cara http://ip:port/globalweather.asmx?wsdl
Akhirnya kita telah berhasil untuk mendaftarkan wsdl SOAP ke OAG, wsdl global weather juga sudah dapat diakses melalui OAG. Kita dapat menambahkan beberapa filter untuk memproteksi service tersebut sesui dengan kebutuhan. Contoh proteksi service sudah pernah kita bahas sebelumnya di link blog berikut http://blog.nostratech.com/2016/06/membuat-filter-ip-address-dan.html

Semoga informasi ini dapat bermanfaat :)

Terimakasih.

Referensi : https://www.youtube.com/watch?v=-lRIB9iV_ac