ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บนแพลตฟอร์ม

RUK-COM PAAS / DEVELOPMENT TOOLS

ภาพรวม API

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

Platform API ช่วยให้นักพัฒนาสามารถดำเนินการชุดการดำเนินการที่จำเป็นสำหรับวงจรการใช้งานของแอปพลิเคชันได้โดยอัตโนมัติและขยายฟังก์ชันการทำงานของแพลตฟอร์มของเราโดยการรวมบริการอื่นๆเข้าด้วยกันเมื่อใช้ API ของเราคุณสามารถสร้าง Environment โดยทางโปรแกรมปรับใช้แอปและทำงานอื่นๆที่สามารถทำได้ก่อนหน้านี้ผ่านแดชบอร์ดของแพลตฟอร์มเท่านั้นแต่ไม่จำกัดเพียง Environment เหล่านั้น

Image 33: platform APIPlatform API เป็นไปตามหลักการ RESTREST APIกำหนดชุดของฟังก์ชันที่นักพัฒนาสามารถร้องขอได้ซึ่งจากนั้นจะได้รับการตอบกลับการโต้ตอบจะดำเนินการผ่านโปรโตคอล HTTPS ข้อดีของวิธีการดังกล่าวคือการขยายโปรโตคอล HTTPS อย่างกว้างขวางนั่นเป็นสาเหตุที่ REST API สามารถใช้ได้กับภาษาการเขียนโปรแกรมเกือบทุกภาษา

คำขอ API แพลตฟอร์ม

คำขอทั้งหมดของวิธี API คือคำขอ GET หรือ POST HTTPS ไปยัง URL พร้อมชุดพารามิเตอร์:

https://{โฮสต์-api-โฮสต์}/1.0/

ประเภทของ URL ที่ควรจะใช้ระบุไว้ในคำอธิบายของแต่ละวิธี (ช่อง REST)

Image 35: api overview rest linkข้อมูลของคำขอสามารถส่งเป็นสตริงการสืบค้น (หลังเครื่องหมาย “?”) ในขณะที่ใช้เมธอด GET หรือในเนื้อความของคำขอ POST โปรดจำไว้ว่าในกรณีของคำขอ GET พารามิเตอร์จะต้องเป็นเปอร์เซ็นต์ที่เข้ารหัส(การเข้ารหัส URL)

บันทึก:ไม่รองรับเมธอด GET ภายในคำขอ API ต่อไปนี้เนื่องจากเหตุผลด้านความปลอดภัย:

  • เข้าสู่ระบบ-https://{hoster-api-host}/1.0/users/authentication/rest/signin?login=[string]&password=[string]
  • สมัครสมาชิก-https://reg.{hoster-domain}/signup?email=[string]
  • เปลี่ยนรหัสผ่าน-https://{hoster-api-host}/1.0/users/account/rest/changepassword?oldPassword=[string]&newPassword=[string]session=[string]

โปรดทราบว่ามีข้อจำกัดเกี่ยวกับความยาวของคำขอ URL - 2,048 อักขระนั่นคือเหตุผลที่เราแนะนำให้ใช้:

  • GET ขอรับข้อมูลที่เหมาะกับความยาวที่จำกัดได้อย่างง่ายดาย
  • คำขอ POST สำหรับการเปลี่ยนแปลงข้อมูล (การสร้าง Environment การเปลี่ยนไฟล์กำหนดค่าฯลฯ)

ด้วยวิธีนี้คุณจะไม่ถูกจำกัดความยาวของคำขอนอกจากนี้การใช้งานดังกล่าวยังเกี่ยวข้องกับข้อกำหนดทางเทคนิคของโปรโตคอล HTTPS มากกว่าอีกด้วยวิธีการ API ของแพลตฟอร์มทั้งหมดจำเป็นต้องมีการตรวจสอบสิทธิ์และรายละเอียดเป้าหมายการดำเนินการซึ่งมีให้ผ่านทางการประชุมและenvNameพารามิเตอร์ตามลำดับ

บันทึก:ถ้าไม่มีenvNameอาร์กิวเมนต์ในคำอธิบายวิธีการจะนำไปใช้กับทั้งบัญชี/แพลตฟอร์มต่อไปนี้เลิกใช้แล้วสมัครควรละเว้นพารามิเตอร์ซึ่งก่อนหน้านี้ใช้เพื่อกำหนดเป้าหมายการดำเนินการ

ค่าข้อความของพารามิเตอร์ควรระบุเป็นโค้ด UTF-8 ลำดับของพารามิเตอร์ในคำขอไม่สำคัญ

การตอบสนองของแพลตฟอร์ม API

การตอบกลับคำขอมีการเข้ารหัส UTF-8 การตอบสนองสำหรับฟังก์ชัน API ทั้งหมดมีให้ในเจสันรูปแบบตัวอย่างของผลลัพธ์ได้อธิบายไว้ในเอกสารประกอบของวิธีการ

Image 37: signin API method

แพลตฟอร์ม API ในการใช้งานจริง

หากต้องการเริ่มการทำงานอัตโนมัติของกระบวนการที่จำเป็นด้วยแพลตฟอร์ม API คุณต้องปฏิบัติตามข้อกำหนดต่อไปนี้:

หากคุณใช้ Maven ให้เพิ่มการพึ่งพาต่อไปนี้pom.xml::

คัดลอก xml

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

หากต้องการเรียกใช้ฟังก์ชัน API ใดๆคุณต้องได้รับการรับรองความถูกต้องพารามิเตอร์ “การประชุม” มีหน้าที่ตรวจสอบความถูกต้องเช่นการระบุผู้ใช้ด้วยคำขอเซสชันทำได้โดยการเรียกผู้ใช้ > การรับรองความถูกต้อง > ลงชื่อเข้าใช้วิธี.

สำเนา

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

ที่ไหนเข้าสู่ระบบและรหัสผ่านเป็นข้อมูลประจำตัวของบัญชี PaaS ของคุณ

การเรียกใช้ฟังก์ชัน API เพิ่มเติมควรดำเนินการด้วยค่าเซสชันที่ได้รับหากต้องการเสร็จสิ้นเซสชันการทำงานด้วย API ให้เรียกผู้ใช้ > การรับรองความถูกต้อง > ออกจากระบบวิธี.

สำเนา

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

ด้วยความช่วยเหลือของ Platorm Java Client Library คุณสามารถดำเนินการต่างๆที่เกี่ยวข้องกับการจัดการวงจรชีวิตของแอปพลิเคชันของคุณได้โดยอัตโนมัติเช่นการสร้าง Environment การเปลี่ยนสถานะการลบการรีสตาร์ท Node การ Deploy แอปพลิเคชันฯลฯ

มาดูวิธีสร้าง Environment ด้วยโทโพโลยีและการตั้งค่าที่คุณกำหนดเองโดยใช้ Platform Client Library

สร้าง Environment

คุณสามารถดูตัวอย่างเวอร์ชันเต็มเกี่ยวกับการสร้าง Environment ได้ในเอกสารประกอบ API ของแพลตฟอร์ม (ตัวอย่างจาวาแท็บ) และนี่คือคำอธิบายประเด็นหลักทีละขั้นตอน:

  1. ประกาศใหม่ครับสร้าง Environmentคลาสสาธารณะซึ่งจะรวมบล็อกและพารามิเตอร์ต่อไปนี้ทั้งหมดบล็อกพารามิเตอร์แรกควรมีสตริงถัดไป:

จาวาคัดลอก

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 ของผู้ให้บริการโฮสติ้งของคุณ (โดเมนพันธมิตรคอลัมน์ในผู้ให้บริการโฮสติ้งเอกสาร)
  • <email>- อีเมลบัญชี PaaS ของคุณ (เข้าสู่ระบบ)
  • <password>- รหัสผ่านบัญชี PaaS ของคุณ
  1. จากนั้นมีการกำหนดค่าการรับรองความถูกต้องซึ่งจะใช้ข้อมูลเข้าสู่ระบบและรหัสผ่านที่คุณระบุไว้ข้างต้น

จาวาคัดลอก

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

  1. ขั้นตอนต่อไปคือการรับรายการเอ็นจิ้นที่พร้อมใช้งานตามที่ระบุ(สามารถจาวา, PHP, รูบี้, 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());
}
  1. หลังจากนั้นจะได้รับรายการเทมเพลต Node ที่มีอยู่ตามที่ระบุซึ่งสามารถเป็น:
  • ทั้งหมด - ทั้งหมดมีอยู่ในเทมเพลตแพลตฟอร์มเช่นเนทิฟและคาร์ทริดจ์
  • NATIVE - เทมเพลต Node เริ่มต้น
  • 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());
}
  1. บล็อกถัดไปมีไว้สำหรับการกำหนดค่าและการตั้งค่าแบบกำหนดเองของ Environment ใหม่และเซิร์ฟเวอร์ที่บล็อกนั้นจะมีดูรายละเอียดเพิ่มเติมเกี่ยวกับพารามิเตอร์ JSON ที่ใช้ในแพลตฟอร์มเพื่อกำหนดโทโพโลยีของ Environment ได้ที่นี่.

จาวาคัดลอก

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);
  1. สุดท้ายให้เริ่มต้นการสร้าง Environment ใหม่ด้วยการตั้งค่าที่ระบุทั้งหมด:

จาวาคัดลอก

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

นั่นคือทั้งหมดที่ทำตามขั้นตอนดังกล่าวคุณสามารถสร้าง Environment ต่างๆโดยอัตโนมัติได้ค้นหาเวอร์ชันเต็มของตัวอย่างนี้ในเอกสาร API แพลตฟอร์ม> ตัวอย่าง Java > CreateEnvironment. ในหมู่เหล่านั้นด้วยตัวอย่างจาวาคุณสามารถดูตัวอย่างอื่นๆของการใช้ Platform Client Library สำหรับการดำเนินการต่างๆโดยอัตโนมัติที่เกี่ยวข้องกับการจัดการวงจรการใช้งานแอปพลิเคชันของคุณสนุก!