Panduan Lengkap Penggunaan Dewacloud API

Panduan Lengkap Penggunaan Dewacloud API

Dewacloud API dapat membantu developer untuk melakukan otomatisasi serangkaian request yang diperlukan untuk lifecycle aplikasi dan memperluas fungsionalitas platform dengan menggabungkan layanan lain.

Dengan menggunakan API ini, kamu dapat membuat environment secara terstruktur, men-deploy aplikasi dan masih banyak lagi hanya lewat dashboard Dewacloud saja.

Dewacloud API menggunakan prinsip REST. REST API sendiri menentukan fungsi yang dapat di request oleh developer dan kemudian menerima respon nya.

Dewacloud API Request

Semua request yang dapat dilakukan pada API method yaitu GET atau POST. Dengan menggunakan parameter seperti berikut :

https:// {hoster-api-host} /1.0/

URL yang harus kamu gunakan, biasanya sudah tersedia seperti pada kolom di bawah ini.

api request

Ketika menggunakan method GET, data yang di request dapat dikirim dalam bentuk query string setelah tanda “?”, atau tuliskan pada bagian body POST request.

Selain itu, yang perlu kamu ingat juga, pada method GET harus menggunakan percent encoded atau URL encoding.

Hal penting yang harus kamu perhatikan juga yaitu batasan URL request, yang mana yaitu 2048 karakter saja. Oleh karena itu, kita menyarankan untuk menggunakan ini :

  • GET, request untuk menerima informasi yang sesuai dengan limit panjangnya.
  • POST, request untuk mengubah data (membuat environment, mengubah file konfigurasi dan lainnya).

Dengan demikian, kamu tidak akan dibatasi terkait panjangnya request. Selain itu, juga akan lebih relevan untuk penggunaan HTTPS protocol.

Respons API Dewacloud

Response request tersebut merupakan UTF-8 encoded. Dan semua respons dari API, yaitu berformat JSON. Contohnya seperti tampilan berikut.

api response

Dewacloud API Action

Untuk memulai otomatisasi dengan Dewacloud API, lengkapi persyaratannya terlebih dulu yaitu :

  • Pastikan kamu sudah terdaftar di provider hosting.
  • Download Dewacloud Client Library yang sesuai dengan platform yang kamu gunakan dan tambahkan ke classpath.

Apabila kamu menggunakan Maven, maka tambahkan dependency tersebut ke file pom.xml

<dependency>
   <groupId>com.dewacloud</groupId>
   <artifactId>dewacloud-public-j2se</artifactId>
   <version>3.1</version>
</dependency>.

Selanjutnya untuk memanggil function API apapun kamu harus melakukan autentikasi terlebih dulu. Parameter session inilah yang nantinya bertanggung jawab terhadap autentikasi, yaitu mengidentifikasi user terkait request nya.

Session tersebut dapat kamu panggil dengan method Users > Authentication > Signin. Contohnya seperti ini.

https://{hoster-api-host} /1.0/users/authentication/rest/signin?login=[string]&password=[string]

Untuk bagian login dan password, bisa di sesuaikan saja dengan akun kamu.

Pemanggilan function API selanjutnya harus dilakukan dengan nilai session yang diterima. Caranya yaitu Users > Authentication > Signout.

https:// {hoster-api-host} /1.0/users/authentication/rest/signout?session=[string]

Dengan bantuan Dewacloud Java Client Library, kamu dapat mengotomatisasi berbagai action terkait manajemen lifecyle aplikasi kamu. Seperti membuat environment, mengganti status, menghapus, merestart nodes, men-deploy aplikasi dan masih banyak lagi.

Berikut ini cara membuat environment dengan custom topology dan setting menggunakan Dewacloud Client Library.

Create Environment

Berikut adalah langkah-langkah pembuatan environment dengan Dewacloud API.

  1. Deklarasikan CreateEnvironment yang baru, dan nantinya akan menyertakan semua blok dan parameter. Blok parameter pertama berisikan string sebagai berikut.
    private final static String HOSTER_URL = "<hoster-url>"; 
    private final static String USER_EMAIL = "<email>";
    private final static String USER_PASSWORD = "<password>"; 
    private final static String ENV_NAME = "test-api-environment-" + new Random().nextInt(100);
    

    Berikut adalah penjelasan dari perintah di atas:

    • <hoster-url>: URL penyedia hosting kamu.
    • <email>: email akun Dewacloud kamu.
    • <password>: password akun Dewacloud kamu.
  2. Kemudian, autentikasi tersebut akan dikonfigurasi menggunakan email dan password yang sudah kamu masukan sebelumnya.
    public static void <span style="color: #ff8000;">main(String[] args) {         
    
    System.out.println("Authenticate user...")
    AuthenticationResponse authenticationResponse =          authenticationService.signin(USER_EMAIL, USER_PASSWORD);
    System.out.println("Signin response: " + authenticationResponse);
    if (!authenticationResponse.isOK()) {
    System.exit(authenticationResponse.getResult());
    }
    
    final String session = authenticationResponse.getSession();
    

    Setelah autentikasi, unique session baru akan terbuat. Hal tersebut akan digunakan untuk melakukan operasi dalam akun user. Semua pemanggilan API function selanjutnya harus dilakukan pada session ini, yang tetap valid sampai pemanggilan metode Signout.

  3. Langkah selanjutnya adalah mendapatkan list engine yang tersedia untuk <engine_type> (bisa Java, Ruby, PHP, Js dan yang lain).
    System.out.println("Getting list of engines...");
    ArrayResponse arrayResponse = environmentService.getEngineList(session, "<engine_type>");
    System.out.println("GetEngineList response: " + arrayResponse);
    if (!arrayResponse.isOK()) {
        System.exit(arrayResponse.getResult());
    }
    
  4. Setelah itu, dapatkan list node templates yang tersedia untuk <templates_type> yang mana dapat berupa :
    • ALL : semua tersedia pada platform templates, seperti native dan cartridges.
    • NATIVE : merupakan default node templates.
    • CARTRIDGE : merupakan custom templates yang ditambahkan ke platform sebagai cartridges oleh penyedia hosting.
    System.out.println("Getting list of templates...");
    arrayResponse = environmentService.getTemplates(session, "<templates_type>", false);
    System.out.println("GetTemplates response: " + arrayResponse);
    if (!arrayResponse.isOK()) {
        System.exit(arrayResponse.getResult());
    }
    
  5. Blok berikutnya khusus untuk mengkonfigurasi dan melakukan setting terhadap environment dan server yang baru.
    JSONObject env = new JSONObject()
            .put("ishaenabled", false)
            .put("engine", "php5.5")
            .put("shortdomain", ENV_NAME);
    
    JSONObject apacheNode = new JSONObject()
            .put("nodeType", "apache2")
            .put("extip", false)
            .put("count", 1)
            .put("fixedCloudlets", 1)
            .put("flexibleCloudlets", 4);
    
    JSONObject mysqlNode = new JSONObject()
            .put("nodeType", "mysql5")
            .put("extip", false)
            .put("fixedCloudlets", 1)
            .put("flexibleCloudlets", 4);
    
    JSONObject memcachedNode = new JSONObject()
            .put("nodeType", "memcached");
    
    JSONArray nodes = new JSONArray()
            .put(apacheNode)
            .put(mysqlNode)
            .put(memcachedNode);
    
  6. Langkah terakhir, mulai buat environment baru dengan setting yang sudah ditentukan.
    System.out.println("Creating environment...");
    ScriptEvalResponse scriptEvalResponse = environmentService.createEnvironment(session, 
    "createenv", env.toString(), nodes.toString());
    System.out.println("CreateEnvironment response: " + scriptEvalResponse);
    
    

Nah, itu dia langkah – langkah untuk membuat environment baru melalui Dewacloud Client Library. Bagaimana, cukup mudah bukan? Oleh karena itu segera gunakan layanan kami dan dapatkan manfaat lebih untuk aplikasimu.