ภาพรวม API
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
Platform API ช่วยให้นักพัฒนาสามารถดำเนินการชุดการดำเนินการที่จำเป็นสำหรับวงจรการใช้งานของแอปพลิเคชันได้โดยอัตโนมัติและขยายฟังก์ชันการทำงานของแพลตฟอร์มของเราโดยการรวมบริการอื่นๆเข้าด้วยกันเมื่อใช้ API ของเราคุณสามารถสร้าง Environment โดยทางโปรแกรมปรับใช้แอปและทำงานอื่นๆที่สามารถทำได้ก่อนหน้านี้ผ่านแดชบอร์ดของแพลตฟอร์มเท่านั้นแต่ไม่จำกัดเพียง Environment เหล่านั้น
Platform API เป็นไปตามหลักการ RESTREST APIกำหนดชุดของฟังก์ชันที่นักพัฒนาสามารถร้องขอได้ซึ่งจากนั้นจะได้รับการตอบกลับการโต้ตอบจะดำเนินการผ่านโปรโตคอล HTTPS ข้อดีของวิธีการดังกล่าวคือการขยายโปรโตคอล HTTPS อย่างกว้างขวางนั่นเป็นสาเหตุที่ REST API สามารถใช้ได้กับภาษาการเขียนโปรแกรมเกือบทุกภาษา
คำขอ API แพลตฟอร์ม
คำขอทั้งหมดของวิธี API คือคำขอ GET หรือ POST HTTPS ไปยัง URL พร้อมชุดพารามิเตอร์:
https://{โฮสต์-api-โฮสต์}/1.0/
ประเภทของ URL ที่ควรจะใช้ระบุไว้ในคำอธิบายของแต่ละวิธี (ช่อง REST)
ข้อมูลของคำขอสามารถส่งเป็นสตริงการสืบค้น (หลังเครื่องหมาย “?”) ในขณะที่ใช้เมธอด 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 ทั้งหมดมีให้ในเจสันรูปแบบตัวอย่างของผลลัพธ์ได้อธิบายไว้ในเอกสารประกอบของวิธีการ
แพลตฟอร์ม 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 ของแพลตฟอร์ม (ตัวอย่างจาวาแท็บ) และนี่คือคำอธิบายประเด็นหลักทีละขั้นตอน:
- ประกาศใหม่ครับสร้าง 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 ของคุณ
- จากนั้นมีการกำหนดค่าการรับรองความถูกต้องซึ่งจะใช้ข้อมูลเข้าสู่ระบบและรหัสผ่านที่คุณระบุไว้ข้างต้น
จาวาคัดลอก
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
- ขั้นตอนต่อไปคือการรับรายการเอ็นจิ้นที่พร้อมใช้งานตามที่ระบุ
(สามารถจาวา, 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());
}
- หลังจากนั้นจะได้รับรายการเทมเพลต 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());
}
- บล็อกถัดไปมีไว้สำหรับการกำหนดค่าและการตั้งค่าแบบกำหนดเองของ 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);
- สุดท้ายให้เริ่มต้นการสร้าง 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 สำหรับการดำเนินการต่างๆโดยอัตโนมัติที่เกี่ยวข้องกับการจัดการวงจรการใช้งานแอปพลิเคชันของคุณสนุก!
