สนามเด็กเล่น C # dotnet web API (ตัวอย่างมากมาย + การปรับใช้ Docker)
บริบท
หลายครั้งที่เราจำเป็นต้องเผยแพร่ไมโครเซอร์วิส RESTful ซึ่งมีการจัดทำเอกสารอย่างดีและปรับใช้ในคอนเทนเนอร์ Docker (Kubernetes, Google Cloud Run, แพลตฟอร์มแบบไร้เซิร์ฟเวอร์ ฯลฯ)
โปรเจ็กต์ Playground นี้แสดงคุณสมบัติมากมายที่คุณสามารถนำมาใช้ซ้ำในโปรเจ็กต์ของคุณได้
เป็นโครงการสดและมีแนวโน้มที่จะได้รับการอัปเดตบ่อยครั้ง
แอปพลิเคชั่นนี้ทำอะไร?
- แอพทำหลายสิ่งหลายอย่าง ตำแหน่งข้อมูล Web API จำนวนมากถูกเปิดเผยเมื่อคุณรันโปรเจ็กต์
- ดูเอกสารประกอบ (หน้าเริ่มต้นเมื่อดำเนินโครงการ)
สแต็กและหัวข้อหลักในโครงการ
เกี่ยวกับผู้แต่งและใบอนุญาต
- Erick เป็นนักพัฒนาและสถาปนิกแบ็กเอนด์อาวุโส
- คุณสามารถติดต่อ Erick ทางอีเมล [email protected] หรือ Linkedin https://www.linkedin.com/in/seixaserick/
- ที่เก็บ Github อื่น ๆ: https://github.com/seixaserick/
- ใบอนุญาต MIT (โปรดตรวจสอบ LICENSE.txt สำหรับรายละเอียดเพิ่มเติม)
วิธีการดำเนินโครงการนี้
โคลนพื้นที่เก็บข้อมูล
หากคุณติดตั้ง Git สำหรับ Windows แล้ว ให้รันคำสั่งด้านล่าง:
git clone https://github.com/seixaserick/dotnet-webapi-playground
cd dotnet-webapi-playground
วิธีรันโปรเจ็กต์นี้ในคอนเทนเนอร์ Docker
หากคุณติดตั้ง Docker Desktop แล้ว เพียงทำตามขั้นตอนด้านล่าง
การสร้างอิมเมจนักเทียบท่า
หากต้องการสร้างอิมเมจ Docker ให้เรียกใช้บรรทัดคำสั่งด้านล่างในพร้อมท์คำสั่งของไดเร็กทอรีโปรเจ็กต์:
docker build -t dotnet-webapi-playground -f Dockerfile .
เรียกใช้แอปในคอนเทนเนอร์นักเทียบท่า
ตั้งค่าเซิร์ฟเวอร์ Redis ใน Docker หากคุณไม่มีอินสแตนซ์ Redis
docker run --name redis -d -p 6379:6379 -e REDIS_PASSWORD=supersecretpassword --restart always redis:latest /bin/sh -c 'redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}'
หากต้องการเรียกใช้อิมเมจในคอนเทนเนอร์ Docker และโต้ตอบกับอิมเมจ ให้เรียกใช้บรรทัดคำสั่งด้านล่าง:
docker run -it -p 1977:80 --name=dotnet-webapi-playground --restart=always dotnet-webapi-playground
เปิด: http://localhost:1977/square/8 (ไม่มี https)
หากต้องการหยุดคอนเทนเนอร์ ให้เรียกใช้บรรทัดคำสั่งด้านล่าง:
docker stop dotnet-webapi-playground
หากต้องการลบคอนเทนเนอร์ออก (แม้ว่าจะกำลังทำงานอยู่) ให้เรียกใช้บรรทัดคำสั่งด้านล่าง:
docker rm --force dotnet-webapi-playground
วิธีสร้างและรันโดยไม่ต้องใช้ Docker (Windows)
หลังจากโคลนพื้นที่เก็บข้อมูลแล้ว คุณสามารถเปิดโปรเจ็กต์ด้วย Visual Studio ได้ สร้างหรือเพียงแค่แก้ไขข้อบกพร่องโดยกด F5
เพื่อคอมไพล์และรันใน Windows (ต้องใช้ Visual Studio)
เปิดไฟล์โซลูชัน dotnet-webapi-playground.sln
ด้วย Visual Studio ของคุณ จากนั้นกด F5
เพื่อรันโปรเจ็กต์!
ซื้อกลับบ้าน
- Swagger เป็นเครื่องมือสร้างเอกสารที่ยอดเยี่ยม
- C# WebApis นั้นเบามากในการทำงานภายใน Docker Containers ที่มี RAM น้อยกว่า 256MB
- Json Parse สร้างโดย dotnet ในวิธีที่ง่ายและไม่ซับซ้อน
- Docker เป็นเครื่องมือที่ดีในการรันโปรเจ็กต์อย่างรวดเร็วโดยไม่ต้องกังวลเรื่องการขึ้นต่อกันและการกำหนดค่า
- C# มีความคล้ายคลึงกับภาษาที่ใช้ ECMA อื่นๆ มาก (Java, Javascript ฯลฯ)
- อัลกอริธึมการแฮชเป็นเพียง "ทางเดียว" เท่านั้น คุณไม่สามารถกู้คืนสตริงอินพุตจากแฮชที่กำหนดได้
- รหัสตอบกลับสามารถปรับแต่งได้อย่างง่ายดายในการตอบกลับ API (ตัวอย่าง: HTTP 409 Conflict, HTTP 402 PaymentRequired ฯลฯ) ดูรหัสตอบกลับ HTTP ที่สมบูรณ์
- ไฟล์ Markdown README.md ที่ดีสามารถช่วยให้นักพัฒนารายอื่นเข้าใจ โคลน รัน และทดสอบโปรเจ็กต์ได้
ความท้าทายในการบ้าน
- สร้าง Object Model ใหม่ในโฟลเดอร์ Models และสร้างจุดสิ้นสุด api ใหม่ (วิธี HTTP GET) เพื่อทำการคำนวณและส่งคืนออบเจ็กต์ใหม่นี้
- สร้างส่วนขยายประเภทข้อมูล C# ใหม่และใช้เพื่อจัดการประเภทข้อมูลดั้งเดิมของคุณ ตัวอย่าง: สร้าง
string extension
เพื่อทำ .ToBase64Encode()
จากนั้นคุณสามารถลอง inputString.ToBase64Encode();
วิธีการฟังก์ชั่นแทน - สร้างตำแหน่งข้อมูล POST API ใหม่เพื่อรับออบเจ็กต์และดำเนินการบางอย่างกับมัน โดยส่งคืนผลลัพธ์
- ลองใช้แคชแบบกระจาย Redis ในบางจุดสิ้นสุด