Jelastic Cloud API

Jelastic Cloud API ຊ່ວຍໃຫ້ນັກພັດທະນາດໍາເນີນການຕັ້ງຄ່າທີ່ຈໍາເປັນສໍາລັບ application’s lifecycle ແລະຂະຫຍາຍຟັງຊັນການເຮັດວຽກຂອງແພຼັດຟອມຂອງເຮົາໂດຍການລວມບໍລິການອື່ນໆ ການໃຊ້ API ທ່ານສາມາດສ້າງໂປຣແກຣມ environment, deploy ແອັບ ແລະເຮັດວຽກອື່ນໆທີ່ສາມາດເຮັດໄດ້ກ່ອນໜ້ານີ້ຜ່ານແດຊບອດ

api overview api

Jelastic API ປະຕິບັດຕາມທິດສະດີ REST; REST API ກໍານົດຊຸດຂອງຟັງຊັນທີ່ນັກພັດທະນາສາມາດ request ໄດ້ ແລະຈະໄດ້ຮັບ response ການໂຕ້ຕອບຈະດໍາເນີນການຜ່ານໂປຣໂຕຄໍ HTTPS ຂໍ້ດີຂອງວິທີການດັ່ງກ່າວຄືການຂະຫຍາຍໂປຣໂຕຄໍ HTTPS ໃຫ້ກວ້າງຂຶ້ນເຊິ່ງເຮັດໃຫ້ REST API ສາມາດໃຊ້ໄດ້ກັບການຂຽນໂປຣແກຣມເກືອບທຸກພາສາ

Jelastic API Request

ຄໍາຂໍທັງໝົດຂອງ API method ຄື GET ຫຼື POST HTTPS-requests ໄປທີ່ URL ພ້ອມກັບຊຸດພາຣາມິເຕີ:

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

ປະເພດຂອງ URL ທີ່ຄວນໃຊ້ມີການລະບຸໄວ້ໃນແຕ່ລະວິທີທີ່ຊ່ອງ REST

api overview rest link

ຂໍ້ມູນຂອງຄໍາຂໍສາມາດສົ່ງເປັນ query string (ຫຼັງເຄື່ອງໝາຍ “?”) ໃນຂະນະທີ່ໃຊ້ method GET ຫຼືໃນເນື້ອຫາຂອງ POST request ໃນກໍລະນີຂອງ GET request ພາຣາມິເຕີຈະຕ້ອງເຂົ້າລະຫັດແບບເປີເຊັນ (URL encoding)

ໝາຍເຫດ: ຕັ້ງແຕ່ເວີຊັນ Jalastic 5.1 ຈະບໍ່ຮອງຮັບ method GET ພາຍໃນ API requests ເນື່ອງຈາກເຫດຜົນດ້ານຄວາມປອດໄພ:
Signinhttps://[hoster-api-host]/1.0/users/authentication/rest/signin?login=[string]&password=[string]
Signuphttps://reg.[hoster-domain]/signup?email=[string]
Change password
https://[hoster-api-host]/1.0/users/account/rest/changepassword?oldPassword=[string]&newPassword=[string]session=[string]

ເພື່ອເປັນການເຕືອນຄວາມຈໍາມີຈໍາກັດຄວາມຍາວຂອງ URL request – 2048 characters ເຮົາຈຶ່ງແນະນໍາໃຫ້ໃຊ້:

  • GET request ເພື່ອຮັບຂໍ້ມູນຈາກຖານຂໍ້ມູນມາສະແດງຜົນ
  • POST request ໃຊ້ສໍາລັບການປ່ຽນແປງຂໍ້ມູນ (ການສ້າງ environment, ການປ່ຽນໄຟລການກໍານົດຄ່າ …)

ດ້ວຍວິທີນີ້ທ່ານຈະບໍ່ຖືກຈໍາກັດຄວາມຍາວຂອງ request ນອກຈາກນີ້ການນໍາໃຊ້ດັ່ງກ່າວມີຄວາມກ່ຽວຂ້ອງກັບຂໍ້ກໍານົດໂປຣໂຕຄໍ HTTPS ຫຼາຍຂຶ້ນ Jelastic API methods ທັງໝົດຕ້ອງຢືນຢັນຕົວຕົນ ແລະ ລາຍລະອຽດເປົ້າໝາຍການດໍາເນີນການ ເຊິ່ງຈັດກຽມໃຫ້ພາຣາມິເຕີ session ແລະ envName ຕາມລໍາດັບ

ໝາຍເຫດ: ຫາກບໍ່ມີການໂຕ້ແຍ້ງ envName ໃນຄໍາອະທິບາຍ method ຈະຖືກນໍາໄປໃຊ້ກັບບັນຊີ/ແພຼັດຟອມທັງໝົດໂດຍທີ່ເລືອກໃຊ້ appid ເຊິ່ງກ່ອນໜ້ານີ້ເພື່ອກໍານົດເປົ້າໝາຍການດໍາເນີນການ ຄວນຖືກລະເວັ້ນ

text value ຂອງພາຣາມິເຕີຄວນລະບຸໃນໂຄດ UTF-8 ລໍາດັບຂອງພາຣາມິເຕີໃນ requset ນັ້ນບໍ່ສໍາຄັນ

Jelastic API Response

request ແລະ response ຈະເຂົ້າລະຫັດແບບ UTF-8 ສໍາລັບການ response ຟັງຊັນ API ຈະມີໃຫ້ໃນຮູບແບບ JSON ຕົວຢ່າງວິທີການນີ້ຈະຢູ່ໃນເອກະສານດ້ານລຸ່ມ

api overview signin method

ການດໍາເນີນການ Jelastic API

ໃນການເລີ່ມເຮັດວຽກອັດຕະໂນມັດຂອງກະບວນການ Jelastic API ທ່ານຕ້ອງປະຕິບັດຕາມຂໍ້ກໍານົດຕໍ່ໄປນີ້:

  • ທ່ານຕ້ອງລົງທະບຽນກັບຜູ້ໃຫ້ບໍລິການໂຮສຕິ້ງ
  • ທ່ານຕ້ອງດາວໂຫຼດ Jelastic Client Library ທີ່ເໝາະສົມ(ຕາມເວີຊັ່ນຂອງແພຼັດຟອມທີ່ໃຊ້) ແລະເພີ່ມລົງໃນ classpath

ຫາກທ່ານໃຊ້ Maven ໃຫ້ເພີ່ມ dependency ຕໍ່ໄປນີ້ pom.xml

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

ໃນການຮຽກໃຊ້ຟັງຊັນ API ທ່ານຈະຕ້ອງກວດສອບພາຣາມິເຕີ “session” ມີໜ້າທີ່ໃນການກວດສອບສິດເຊັ່ນ ລະບຸຜູ້ໃຊ້ດ້ວຍrequest ເຊິ່ງເຊສຊັນສາມາດເຮັດໄດ້ໂດຍການໃຊ້ method: Users > Authentication > Signin

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

ໂດຍການເຂົ້າສູ່ລະບົບ ແລະ ລະຫັດຜ່ານບັນຊີ Huk-Com Cloud ຂອງທ່ານ

ການຮຽກໃຊ້ຟັງຊັນ API ຄວນດໍາເນີນການດ້ວຍ session value ທີ່ໄດ້ຮັບຫາກຕ້ອງການດໍາເນີນການເຊສຊັນການເຮັດວຽກໃຫ້ສໍາເລັດດ້ວຍ API ໃຫ້ໄປທີ່ Users > Authentication > Signout

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

ດ້ວຍຄວາມຊ່ວຍເຫຼືອຈາກ Jelastic Java Client Library ທ່ານສາມາດດໍາເນີນການຕ່າງໆໄດ້ອັດຕະໂນມັດໂດຍການເຊື່ອມຕໍ່ກັບການຈັດການແອັບພລິເຄຊັນ lifecycle ຍົກຕົວຢ່າງເຊັ່ນ ການສ້າງ environment, ການປ່ຽນສະຖານະ ການລົບ ການຣີສະຕາດໂໜດ ການ deploy ແອັບພລິເຄຊັນ ອື່ນໆ

ດັ່ງນັ້ນມາເບິ່ງວິທີການສ້າງ environment ດ້ວຍໂທໂພໂລຢີແບບກໍານົດເອງ ແລະ ການຕັ້ງຄ່າການໃຊ້ Jelastic Java Client Library

ການສ້າງ environment

ຕົວຢ່າງເວີຊັ່ນເຕັມກ່ຽວກັບການສ້າງ environment ໃນເອກະສານ Jelastic API (ແທັບຕົວຢ່າງ Jelastic Java) ໂດຍເຮົາຈະອະທິບາຍຂັ້ນຕອນຫຼັກໆດັ່ງນີ້:

1. ສ້າງ environment ໃໝ່ແບບ public class ເຊິ່ງຈະລວມບລັອກ ແລະ ພາຣາມິເຕີຕໍ່ໄປນີ້ ທັງໝົດ ພາຣາມິເຕີບລັອກທໍາອິດຄວນມີສຕຣິງນີ້:

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);

ໂດຍທີ່:

  • <hoster-url> – URL ຂອງຜູ້ໃຫ້ບໍລິການໂຮສຕິ້ງ (Hoster’s URL / API) ເຊັ່ນ app.manage.huk-com.cloud
  • <email> – ອີເມວທີ່ທ່ານສະມັກHuk-Com Cloud (login)
  • <password> – ລະຫັດຜ່ານຂອງທ່ານສໍາລັບບັນຊີ Huk-Com Cloud

2. ຈາກນັ້ນກໍານົດຄ່າການຢືນຢັນຕົວຕົນຊຶ່ງຈະໃຊ້ການເຂົ້າສູ່ລະບົບ ແລະ ລະຫັດຜ່ານທີ່ທ່ານລະບຸໄວ້ເບື້ອງຕົ້ນ

public static void 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();

ຫຼັງຈາກການຮອງຮັບຄວາມຖືກຕ້ອງເຊສຊັນໃໝ່ທີ່ບໍ່ຊໍ້າກັນຈະຖືກສ້າງຂຶ້ນໂດຍຈະໃຊ້ສໍາລັບດໍາເນີນການທີ່ຈໍາເປັນພາຍໃນບັນຊີຜູ້ໃຊ້ ການຮຽກໃຊ້ຟັງຊັນ API ເພີ່ມເຕີມທັງໝົດຄວນດໍາເນີນການພາຍໃນເຊສຊັນນີ້ເຊິ່ງທ່ານຈະຍັງຕ້ອງໃຊ້ໄດ້ຈົນຮອດການຮຽກ Signout method

3. ຂັ້ນຕອນຕໍ່ໄປຄືການຮັບລາຍການຂອງ engines ທີ່ພ້ອມນໍາໃຊ້ສໍາລັບການລະບຸ <engine_type> (ອາດຈະເປັນ java, php, ruby, js ເປັນຕົ້ນ)

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. ຫຼັງຈາກໄດ້ຮັບລາຍການເທັມເພລດຂອງໂໜດທີ່ພ້ອມນໍາໃຊ້ທັງໝົດສໍາລັບການລະບຸ <templates_type> ເຊິ່ງສາມາດເປັນ:

  • ALL – ແພຼດຟອມເທັມເພລດທີ່ມີຢູ່ທັງໝົດເຊັ່ນ native ແລະ cartridges
  • NATIVE – ຄ່າເລີ່ມຕົ້ນຂອງເທມເພລດໂໜດ
  • CARTRIDGE – ເທມເພລດທີ່ກໍານົດເອງເຊິ່ງຜູ້ໃຫ້ບໍລິການໂຮສຈະເພີ່ມລົງໃນແພຼດຟອມເປັນຄາທຣິດຈ໌
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. ບລັອຖັດໄປມີໄວ້ສໍາລັບການກໍານົດຄ່າ ແລະ ການຕັ້ງຄ່າແບບກໍານົດເອງຂອງ environment ແລະ ເຊີບເວີໃໝ່ ທ່ານສາມາດເບິ່ງລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບພາຣາມິເຕີ JSON ທີ່ໃຊ້ໃນການກໍານົດ environment topology ໄດ້ທີ່ນີ້:

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. ຂັ້ນຕອນສຸດທ້າຍ ສ້າງ environment ໃໝ່ໂດຍການລະບຸການຕັ້ງຄ່າທັງໝົດ:

System.out.println("Creating environment...");
ScriptEvalResponse scriptEvalResponse = environmentService.createEnvironment(session, 
"createenv", env.toString(), nodes.toString());
System.out.println("CreateEnvironment response: " + scriptEvalResponse);