Flask เป็นเฟรมเวิร์กเว็บ Python ยอดนิยมที่ใช้สร้างเว็บแอปพลิเคชัน หนึ่งในงานที่พบบ่อยที่สุดเมื่อสร้างเว็บแอปพลิเคชันคือการส่งข้อมูลจากไคลเอนต์ไปยังเซิร์ฟเวอร์ โดยทั่วไปจะทำโดยใช้วิธีการ HTTP POST JSON (JavaScript Object Notation) เป็นรูปแบบการแลกเปลี่ยนข้อมูลแบบน้ำหนักเบาที่ใช้กันทั่วไปสำหรับการส่งข้อมูลผ่านอินเทอร์เน็ต
ในโพสต์นี้ เราจะสำรวจวิธีใช้ Flask เพื่อจัดการข้อมูล JSON ที่ส่งผ่านวิธีการ HTTP และค้นพบวิธีใช้ Apidog ซึ่งเป็นแพลตฟอร์มแบบครบวงจรที่อำนวยความสะดวกในการพัฒนา API ที่มีประสิทธิภาพ เพื่อออกแบบและทดสอบ Python REST API ของคุณ
คุณยังสามารถตรวจสอบส่วนหัว คุกกี้ รหัสสถานะ และรายละเอียดอื่นๆ ของการตอบสนองได้ Apidog ยังช่วยให้คุณจัดการข้อมูลการตอบสนองโดยใช้ JavaScript กรองข้อมูลโดยใช้ JSONPath และตรวจสอบความถูกต้องของข้อมูลโดยใช้ JSON Schema
ข้อมูล JSON
JSON (JavaScript Object Notation) เป็นรูปแบบการแลกเปลี่ยนข้อมูลแบบน้ำหนักเบาที่ใช้กันทั่วไปสำหรับการส่งข้อมูลผ่านอินเทอร์เน็ต โดยอิงตามชุดย่อยของภาษาการเขียนโปรแกรม JavaScript แต่สามารถใช้ได้กับภาษาการเขียนโปรแกรมใดก็ได้
ข้อดีอย่างหนึ่งของการใช้ JSON คืออ่านและเขียนได้ง่าย ข้อมูล JSON จะแสดงเป็นคู่คีย์-ค่า ซึ่งทำให้ง่ายต่อการทำความเข้าใจและทำงานด้วย JSON สามารถแสดงข้อมูลได้หกประเภทโดยกำเนิด: สตริง ตัวเลข บูลีน ค่าว่าง อาร์เรย์ และอ็อบเจกต์ ตัวอย่างเช่น นี่คือการแสดง JSON ของโพสต์บล็อก:
{
"id": 1001,
"title": "What is JSON?",
"author": {
"id": 1,
"name": "James Walker"
},
"tags": [
"api",
"json",
"programming"
],
"published": false,
"publishedTimestamp": null
}
ตัวอย่างนี้แสดงให้เห็นข้อมูล JSON ทุกประเภท นอกจากนี้ยังแสดงให้เห็นถึงความกระชับของข้อมูลรูปแบบ JSON ซึ่งเป็นหนึ่งในลักษณะที่ทำให้เป็นที่น่าสนใจสำหรับการใช้งานใน API
วิธีการ HTTP POST
วิธีการ HTTP POST เป็นหนึ่งใน วิธีการ HTTP ที่ใช้กันทั่วไปในการส่งข้อมูลจากไคลเอนต์ไปยังเซิร์ฟเวอร์ เมื่อไคลเอนต์ส่งคำขอ HTTP POST จะรวมเนื้อหาข้อความที่มีข้อมูลที่กำลังถูกส่ง ข้อมูลนี้สามารถอยู่ในรูปแบบต่างๆ รวมถึง JSON
ด้วยการใช้ JSON นักพัฒนาสามารถมั่นใจได้ว่าข้อมูลที่ส่งไปยังเซิร์ฟเวอร์ได้รับการจัดระเบียบอย่างดีและเข้าใจง่าย ซึ่งจะช่วยเพิ่มประสิทธิภาพในการสร้างและอัปเดตทรัพยากร

Flask คืออะไร และทำไมคุณควรใช้
Flask เป็นเฟรมเวิร์กเว็บแบบน้ำหนักเบาที่เขียนด้วย Python ได้รับการออกแบบมาให้เรียบง่ายและใช้งานง่าย ในขณะที่ยังคงมีคุณสมบัติทั้งหมดที่คุณต้องการในการสร้างเว็บแอปพลิเคชันสมัยใหม่
Flask สร้างขึ้นบนชุดเครื่องมือ Werkzeug WSGI และเครื่องมือเทมเพลต Jinja2 มี API ที่เรียบง่ายและใช้งานง่ายสำหรับการจัดการคำขอและการตอบสนอง HTTP

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

สร้างสภาพแวดล้อมเสมือน: เป็นแนวทางปฏิบัติที่ดีในการสร้างสภาพแวดล้อมเสมือนสำหรับโปรเจกต์ของคุณ เพื่อหลีกเลี่ยงความขัดแย้งกับโปรเจกต์ Python อื่นๆ คุณสามารถสร้างสภาพแวดล้อมเสมือนโดยใช้โมดูล venv
ที่มาพร้อมกับ Python นี่คือวิธีที่คุณสามารถสร้างสภาพแวดล้อมเสมือน:
$ python3 -m venv myenv
สิ่งนี้จะสร้างไดเรกทอรีใหม่ชื่อ myenv
ในไดเรกทอรีปัจจุบันของคุณ
เปิดใช้งานสภาพแวดล้อมเสมือน: เมื่อคุณสร้างสภาพแวดล้อมเสมือนแล้ว คุณจะต้องเปิดใช้งาน นี่คือวิธีที่คุณสามารถเปิดใช้งานสภาพแวดล้อมเสมือน:
$ source myenv/bin/activate
ติดตั้ง Flask: เมื่อเปิดใช้งานสภาพแวดล้อมเสมือนแล้ว คุณสามารถติดตั้ง Flask โดยใช้ pip
ซึ่งเป็นตัวจัดการแพ็คเกจ Python นี่คือวิธีที่คุณสามารถติดตั้ง Flask:
$ pip install Flask
สิ่งนี้จะติดตั้ง Flask และการพึ่งพาอาศัยกัน
ตรวจสอบการติดตั้ง: ในการตรวจสอบว่า Flask ได้รับการติดตั้งอย่างถูกต้องหรือไม่ คุณสามารถสร้างไฟล์ใหม่ชื่อ app.py
พร้อมเนื้อหาต่อไปนี้:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
บันทึกไฟล์และเรียกใช้โดยใช้คำสั่งต่อไปนี้:
$ flask run
สิ่งนี้จะเริ่มเซิร์ฟเวอร์การพัฒนาในเครื่องที่ http://localhost:5000
เปิดเว็บเบราว์เซอร์ของคุณและไปที่ http://localhost:5000
คุณควรเห็นข้อความที่ระบุว่า “Hello, World!”
การจัดการคำขอ JSON ใน Flask
ในการจัดการข้อมูล JSON ใน Flask คุณจะต้องใช้ อ็อบเจกต์ request
อ็อบเจกต์ request
จัดเตรียมโดย Flask และมีข้อมูลทั้งหมดที่ถูกส่งในคำขอ HTTP ในการแยกวิเคราะห์ข้อมูล JSON คุณสามารถใช้แอตทริบิวต์ json
ของอ็อบเจกต์ request
การรับข้อมูล JSON ใน Flask
ในการเข้าถึงข้อมูล JSON ที่ส่งโดยไคลเอนต์ คุณสามารถใช้แอตทริบิวต์ json
ของอ็อบเจกต์ request
หรือเมธอด get_json()
ทั้งคู่จะส่งคืนพจนานุกรมหรือรายการ Python ที่แสดงถึงข้อมูล JSON ที่แยกวิเคราะห์แล้ว
ความแตกต่างคือแอตทริบิวต์ json
จะยกเว้นหากข้อมูลไม่ใช่ JSON ที่ถูกต้อง ในขณะที่เมธอด get_json()
จะส่งคืน None
ในกรณีนั้น คุณยังสามารถส่งผ่านพารามิเตอร์ force
ไปยังเมธอด get_json()
เพื่อบังคับให้แยกวิเคราะห์ข้อมูลเป็น JSON โดยไม่คำนึงถึงประเภทเนื้อหา
นี่คือตัวอย่างของตัวจัดการเส้นทางอย่างง่ายที่ได้รับคำขอ POST พร้อมข้อมูล JSON และพิมพ์ลงในคอนโซล:
from flask import Flask, request
app = Flask(__name__)
@app.route('/json', methods=['POST'])
def json():
# Get the JSON data from the request
data = request.get_json()
# Print the data to the console
print(data)
# Return a success message
return 'JSON received!'
ประเภทเนื้อหาของคำขอมีความสำคัญเนื่องจากบอก Flask ว่าจะแยกวิเคราะห์ข้อมูลอย่างไร หากประเภทเนื้อหาคือ application/json
Flask จะแยกวิเคราะห์ข้อมูลเป็น JSON โดยอัตโนมัติและทำให้พร้อมใช้งานผ่านแอตทริบิวต์ json
หรือเมธอด get_json()
หากไม่ได้ระบุประเภทเนื้อหาหรือเป็นอย่างอื่น Flask จะไม่แยกวิเคราะห์ข้อมูลเป็น JSON เว้นแต่คุณจะใช้พารามิเตอร์ force
ของเมธอด get_json()
ดังนั้น ขอแนะนำให้ตั้งค่าประเภทเนื้อหาเป็น application/json
เมื่อส่งข้อมูล JSON ไปยัง Flask หรือจัดการกรณีที่ประเภทเนื้อหาไม่ถูกต้องหรือข้อมูลไม่ใช่ JSON ที่ถูกต้อง
การส่งการตอบสนอง JSON ไปยังไคลเอนต์
ในการสร้างและส่งคืนการตอบสนอง JSON โดยใช้ฟังก์ชัน jsonify()
จาก Flask คุณต้องนำเข้าฟังก์ชันจากโมดูล flask
และส่งผ่านพจนานุกรมหรือรายการ Python เป็นอาร์กิวเมนต์ ฟังก์ชันจะแปลงอ็อบเจกต์ Python เป็นสตริง JSON และตั้งค่าประเภทเนื้อหาของการตอบสนองเป็น application/json
ด้วยวิธีนี้ ไคลเอนต์สามารถแยกวิเคราะห์ข้อมูล JSON ได้อย่างง่ายดายและใช้เพื่อวัตถุประสงค์ของตน
นี่คือตัวอย่างของตัวจัดการเส้นทางอย่างง่ายที่ส่งการตอบสนอง JSON พร้อมข้อมูลบางส่วนกลับไปยังไคลเอนต์:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/data')
def data():
# Create a Python dictionary with some data
data = {
'name': 'Bing',
'age': 10,
'hobbies': ['searching', 'chatting', 'learning']
}
# Return a JSON response using the jsonify() function
return jsonify(data)
ฟังก์ชัน jsonify()
มีพารามิเตอร์เสริมบางอย่างที่อาจส่งผลต่อการจัดรูปแบบและการเรียงลำดับของเอาต์พุต JSON ตัวอย่างเช่น คุณสามารถใช้พารามิเตอร์ sort_keys
เพื่อจัดเรียงคีย์ของอ็อบเจกต์ JSON ตามตัวอักษร หรือพารามิเตอร์ indent
เพื่อเพิ่มการเยื้องและบรรทัดใหม่ให้กับสตริง JSON พารามิเตอร์เหล่านี้สามารถทำให้อินพุต JSON อ่านง่ายและสอดคล้องกันมากขึ้น แต่ก็สามารถเพิ่มขนาดของการตอบสนองได้เช่นกัน

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

- เลือกวิธีการ HTTP ที่คุณต้องการใช้ ตัวอย่างเช่น หากคุณต้องการรับรายการข้อความ คุณสามารถเลือกวิธีการ GET หากคุณต้องการสร้างข้อความใหม่ คุณสามารถเลือกวิธีการ POST

- ป้อน URL ของปลายทาง API ของคุณในช่องป้อนข้อมูล URL เพิ่มส่วนหัว คุกกี้ หรือพารามิเตอร์ที่คุณต้องการสำหรับคำขอของคุณ ตัวอย่างเช่น หากคุณต้องการสร้างข้อความใหม่ คุณต้องเพิ่มส่วนหัว
Content-Type
พร้อมค่าapplication/json
และเขียนข้อมูลในรูปแบบ JSON ในช่องป้อนข้อมูลเนื้อหา ตัวอย่างเช่น คุณสามารถเขียนข้อมูลต่อไปนี้:

- คลิกที่ปุ่ม Send เพื่อส่งคำขอไปยัง API ของคุณ จากนั้น Apidog จะแสดงการตอบสนองจาก API ของคุณในแท็บ Response คุณยังสามารถสลับไปที่แท็บ Headers, Cookies หรือ Raw เพื่อดูรายละเอียดอื่นๆ ของการตอบสนอง

- วิเคราะห์และจัดการข้อมูลการตอบสนองโดยใช้คุณสมบัติและเครื่องมือของ Apidog คุณสามารถใช้ JSON Viewer, JSONPath, JavaScript, JSON Schema และคุณสมบัติและเครื่องมืออื่นๆ เพื่อดู กรอง แก้ไข หรือตรวจสอบความถูกต้องของข้อมูลการตอบสนอง คุณยังสามารถบันทึกคำขอและการตอบสนองของคุณและแชร์กับผู้อื่นโดยใช้ URL ที่ไม่ซ้ำกัน
ตอนนี้คุณได้ทดสอบ FlaskAPI ของคุณที่สามารถส่งและรับข้อมูล JSON โดยใช้ Apidog คุณยังสามารถทดสอบปลายทางและวิธีการ API อื่นๆ ได้โดยใช้ขั้นตอนเดียวกัน คุณยังสามารถใช้ Apidog เพื่อทดสอบ API อื่นๆ ที่คุณพบทางออนไลน์หรือสร้างขึ้นเอง Apidog เป็นเครื่องมืออเนกประสงค์และทรงพลังที่สามารถช่วยคุณในงานที่เกี่ยวข้องกับ API ได้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Apidog และคุณสมบัติและเครื่องมือต่างๆ ได้จากเว็บไซต์อย่างเป็นทางการ:
บทสรุป
ในโพสต์นี้ เราได้เรียนรู้วิธีจัดการคำขอ JSON ใน Flask ซึ่งเป็นไมโครเฟรมเวิร์กยอดนิยมสำหรับการพัฒนาเว็บใน Python เราได้เห็นวิธี:
- รับและแยกวิเคราะห์ข้อมูล JSON จากคำขอ POST โดยใช้แอตทริบิวต์
json
ของอ็อบเจกต์request
หรือเมธอดget_json()
- สร้างและส่งคืนการตอบสนอง JSON โดยใช้ฟังก์ชัน
jsonify()
ซึ่งแปลงพจนานุกรมหรือรายการ Python เป็นสตริง JSON และตั้งค่าประเภทเนื้อหาที่เหมาะสมสำหรับการตอบสนอง - ใช้พารามิเตอร์เสริมบางอย่างของฟังก์ชัน
jsonify()
เช่นsort_keys
และindent
เพื่อส่งผลต่อการจัดรูปแบบและการเรียงลำดับของเอาต์พุต JSON - การใช้ Apidog เพื่อโพสต์ข้อมูล JSON