เห็นทาง Microsoft แนะนำ YARP มา สำหรับจัดการ API ต่าง ๆ
โดยที่ดูมานั้น เป้าหมายเพื่อสร้าง internal tool ที่ใช้งานภายในองค์กร
เนื่องจากพบว่าหลาย ๆ ทีมมักจะทำงานเดียวกันซ้ำ ๆ
จึงสร้าง YARP ขึ้นมาซึ่งเป็น proxy นั่นเอง
ดังนั้นมาดูกันว่าเป็นอย่างไรบ้าง

โดยที่ YARP นั้นสนับสนุน protocol ต่าง ๆ ดังนี้

  • HTTP/ 1.1
  • HTTP/ 2 สำหรับ gRPC
  • HTTP 3
  • WebSocket

สามารถ custom หรือ เพิ่มความสามารถต่าง ๆ
เข้าไปได้ด้วยการเขียน code ด้วย C#
และใช้งานได้กับ .NET 6 ขึ้นไป
มาเป็น dependnency ที่เพิ่มเข้า .NET project ได้เลย

Reverse proxy นั้นทำหน้าที่ forward request จาก client
ไปยัง server ที่เหมาะสม ตามที่กำหนดเอาไว้
ช่วยทำการซ่อน implementation หรือ server ไว้จาก client นั่นเอง
ความสามารถพื้นฐานของ reverse proxy ประกอบไปด้วย

  • Load balancing
  • Caching
  • Security
  • SSL termination

แสดงดังรูป

ทำการติดตั้ง dependency หรือ package ได้เลย

$dotnet add package Yarp.ReverseProxy --version 2.1.0

จากนั้นเขียน code เล็กน้อยสำหรับ reverse proxy

สามารถทำการ config พวก route, transform ในไฟล์ appsettings.json ได้เลยดังนี้

เราสามารถเพิ่มความสามารถต่าง ๆ เข้าไปได้อีก
หรือใช้สิ่งที่มีให้ใช้งานได้เลย เช่น

ลองใช้งานกันดูครับ

Reference Websites