Skip to content
Siamcoder

การทำงานกับ API ใน Java (Working with APIs in Java)

java2 min read

การทำงานกับ API ใน Java เป็นสิ่งสำคัญในการพัฒนาเว็บแอปพลิเคชันที่มีการติดต่อกับบริการภายนอก เพื่อรับหรือส่งข้อมูล ซึ่งการทำงานกับ API นั้นมีขั้นตอนที่สำคัญและเทคนิคที่คุณควรทราบ ดังนั้นเรามาดูแนวทางการทำงานกับ API ใน Java กันเถอะ

  1. การติดต่อกับ API:

    • ใช้คลาส java.net.URL เพื่อสร้าง URL ของ API ที่ต้องการติดต่อ
    • ใช้คลาส java.net.HttpURLConnection เพื่อเปิดการเชื่อมต่อและส่งคำขอไปยัง API
    • ใช้เมธอด setRequestMethod() เพื่อตั้งค่าเมธอดของคำขอเช่น GET, POST, PUT, DELETE และอื่น ๆ
    • ใช้ getInputStream() เพื่อรับข้อมูลที่ส่งกลับมาจาก API
  2. การอ่านและประมวลผลข้อมูลจาก API:

    • ใช้ BufferedReader เพื่ออ่านข้อมูลที่ได้รับจาก API
    • ใช้ StringBuilder เพื่อสะสมข้อมูลที่อ่านได้จาก API
    • ใช้ JSONObject หรือ JSONArray เพื่อแปลงข้อมูล JSON ที่ได้รับเป็นรูปแบบ Java object เพื่อง่ายต่อการใช้งาน
  3. การจัดการข้อผิดพลาด:

    • ใช้การตรวจจับและจัดการข้อผิดพลาดที่อาจเกิดขึ้นในการเชื่อมต่อหรือการรับส่งข้อมูลกับ API โดยใช้การจัดการข้อผิดพลาดทางการเขียนของ Java เช่นการใช้ try-catch และ throws เพื่อจัดการกับข้อผิดพลาดที่เป็นไปได้

นี่คือตัวอย่างโค้ดการเรียกใช้งาน API ใน Java ด้วยใช้ java.net.URL และ java.net.HttpURLConnection:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class APIClient {
public static void main(String[] args) {
try {
// สร้าง URL ของ API
URL url = new URL("https://api.example.com/data");
// เปิดการเชื่อมต่อกับ API
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// ตั้งค่าเมธอดของคำขอเป็น GET
connection.setRequestMethod("GET");
// อ่านข้อมูลที่ได้รับจาก API
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
// ปิดการเชื่อมต่อ
connection.disconnect();
// แสดงผลลัพธ์
System.out.println(response.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}`

โค้ดด้านบนจะเป็นตัวอย่างการสร้าง URL ของ API และเปิดการเชื่อมต่อกับ API โดยใช้ java.net.HttpURLConnection ในการส่งคำขอ GET และอ่านข้อมูลที่ได้รับจาก API ผ่าน BufferedReader และ StringBuilder

นอกจากการส่งคำขอ GET และอ่านข้อมูลจาก API ด้วย HttpURLConnection เรายังสามารถทำการส่งคำขอ POST, PUT, DELETE เพื่อส่งหรืออัปเดตข้อมูลกับ API ได้อีกด้วย ต่อไปนี้เป็นตัวอย่างโค้ดการใช้งาน API ใน Java ด้วย HttpURLConnection:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class APIClient {
public static void main(String[] args) {
try {
// สร้าง URL ของ API
URL url = new URL("https://api.example.com/data");
// เปิดการเชื่อมต่อกับ API
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// ตั้งค่าเมธอดของคำขอเป็น POST
connection.setRequestMethod("POST");
// เปิดการเขียนข้อมูลไปยัง API
connection.setDoOutput(true);
// สร้างข้อมูลที่จะส่งไปยัง API
String requestData = "{\"name\": \"John\", \"age\": 30}";
// ส่งข้อมูลไปยัง API
OutputStream outputStream = connection.getOutputStream();
outputStream.write(requestData.getBytes());
outputStream.flush();
outputStream.close();
// ตรวจสอบสถานะการตอบกลับจาก API
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// อ่านข้อมูลที่ได้รับจาก API
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// แสดงผลลัพธ์
System.out.println(response.toString());
} else {
System.out.println("เกิดข้อผิดพลาด: " + responseCode);
}
// ปิดการเชื่อมต่อ
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}`

ในตัวอย่างนี้เราตั้งค่าเมธอดของคำขอเป็น POST และส่งข้อมูล JSON ไปยัง API ผ่าน OutputStream หลังจากนั้นเราอ่านข้อมูลที่ได้รับจาก API และแสดงผลลัพธ์ออกทางหน้าจอ โดยเช็คสถานะการตอบกลับจาก API ผ่าน getResponseCode() โดยในกรณีที่สถานะการตอบกลับเป็น HTTP OK (สถานะ 200) จะทำการอ่านข้อมูลที่ได้รับและแสดงผลลัพธ์ ถ้าสถานะการตอบกลับไม่เป็น HTTP OK ก็จะแสดงข้อความว่าเกิดข้อผิดพลาดพร้อมกับโค้ดสถานะที่ได้รับจาก API