วิธีโพสต์และส่งข้อมูล JSON ใน Flask

เรียนรู้ Flask (Python) จัดการ JSON POST และใช้ Apidog พัฒนา API ทดสอบ REST API

อาชว์

อาชว์

4 June 2025

วิธีโพสต์และส่งข้อมูล JSON ใน Flask

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

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

💡
Apidog เป็นเครื่องมือบนเว็บที่ช่วยให้คุณทดสอบและแก้ไขข้อบกพร่องของ API ช่วยให้คุณสามารถส่งคำขอ HTTP ไปยังปลายทาง API ใดก็ได้และรับการตอบสนองในรูปแบบต่างๆ เช่น JSON, XML, HTML เป็นต้น
คุณยังสามารถตรวจสอบส่วนหัว คุกกี้ รหัสสถานะ และรายละเอียดอื่นๆ ของการตอบสนองได้ Apidog ยังช่วยให้คุณจัดการข้อมูลการตอบสนองโดยใช้ JavaScript กรองข้อมูลโดยใช้ JSONPath และตรวจสอบความถูกต้องของข้อมูลโดยใช้ JSON Schema
button

ข้อมูล 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

คุณสมบัติหลักประการหนึ่งของ 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 ไม่ว่าคุณจะเป็นนักพัฒนา นักทดสอบ นักออกแบบ หรือนักเรียน ช่วยให้คุณ:

button

ในการทดสอบ Flask API ของคุณที่สามารถส่งและรับข้อมูล JSON โดยใช้ Apidog คุณต้องทำตามขั้นตอนเหล่านี้:

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

button

บทสรุป

ในโพสต์นี้ เราได้เรียนรู้วิธีจัดการคำขอ JSON ใน Flask ซึ่งเป็นไมโครเฟรมเวิร์กยอดนิยมสำหรับการพัฒนาเว็บใน Python เราได้เห็นวิธี:

button

Explore more

วิธีเรียกใช้ Mistral Small 3.1 ในเครื่องของคุณเองโดยใช้ Ollama: คู่มือทีละขั้นตอน

วิธีเรียกใช้ Mistral Small 3.1 ในเครื่องของคุณเองโดยใช้ Ollama: คู่มือทีละขั้นตอน

เรียนรู้วิธีรัน Mistral Small 3.1 (AI โอเพนซอร์ส) บนเครื่องคุณเองด้วย Ollama คู่มือนี้ง่าย ครอบคลุมการติดตั้ง, การใช้งาน, และเคล็ดลับ

19 March 2025

NDJSON 101: การสตรีมผ่าน HTTP Endpoints

NDJSON 101: การสตรีมผ่าน HTTP Endpoints

ค้นพบ NDJSON: สตรีมข้อมูลผ่าน HTTP อย่างมีประสิทธิภาพ! คู่มือนี้อธิบายพื้นฐาน, ข้อดีเหนือ JSON, และวิธี Apidog ช่วยทดสอบ/แก้จุดบกพร่อง endpoint สตรีมมิ่ง

18 March 2025

วิธีนำเข้า/ส่งออกข้อมูลคอลเลกชันใน Postman

วิธีนำเข้า/ส่งออกข้อมูลคอลเลกชันใน Postman

ในบทความนี้ เราจะคุยเรื่องนำเข้า/ส่งออก Postman และวิธีแก้ปัญหาที่ยืดหยุ่นกว่า ไม่จำกัดจำนวนครั้ง

18 March 2025

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API