เฟรมเวิร์กแบบเปิดเพื่อประกอบเกตเวย์ API ประสิทธิภาพพิเศษกับ Middlewares; เดิมชื่อ Krakend Framework และบริการหลักของ Krakend API Gateway
ผู้บริโภคของเนื้อหา REST API (โดยเฉพาะใน microservices) มักจะสอบถามบริการแบ็กเอนด์ที่ไม่ได้เข้ารหัสสำหรับการใช้งาน UI แน่นอนว่านี่เป็นแนวปฏิบัติที่ดี แต่ผู้บริโภค UI จำเป็นต้องใช้การใช้งานที่ประสบความซับซ้อนและภาระมากกับขนาดของการตอบสนองของไมโครไซต์
Lura เป็นตัวสร้าง เกตเวย์ API และเครื่องกำเนิดพร็อกซีที่อยู่ระหว่างไคลเอนต์และเซิร์ฟเวอร์ต้นทางทั้งหมดเพิ่มเลเยอร์ใหม่ที่จะลบความซับซ้อนทั้งหมดให้กับลูกค้าโดยให้ข้อมูลที่ UI ต้องการเท่านั้น Lura ทำหน้าที่เป็น ผู้รวบรวม แหล่งข้อมูลจำนวนมากลงในจุดสิ้นสุดเดียวและช่วยให้คุณจัดกลุ่มห่อแปลงแปลงและลดการตอบสนอง นอกจากนี้ยังรองรับ Middlewares และปลั๊กอินจำนวนมากที่ช่วยให้คุณสามารถขยายการใช้งานได้เช่นการเพิ่มการอนุญาต OAuth หรือเลเยอร์ความปลอดภัย
Lura ไม่เพียง แต่รองรับ HTTP (S) เท่านั้น แต่เนื่องจากเป็นชุดของไลบรารีทั่วไปคุณสามารถสร้างเกตเวย์ API และพร็อกซีทุกประเภทรวมถึงตัวอย่างเช่นเกตเวย์ RPC
นักพัฒนามือถือจำเป็นต้องสร้างหน้าแรกที่ต้องการข้อมูลจาก 4 สายที่แตกต่างกันไปยังบริการแบ็กเอนด์ของพวกเขาเช่น:
1) api.store.server/products 2) api.store.server/marketing-promos 3) api.users.server/users/{id_user} 4) api.users.server/shopping-cart/{id_user}
หน้าจอนั้นง่ายมากและไคลเอนต์มือ ถือ ต้องการดึงข้อมูลจาก 4 แหล่งที่แตกต่างกันรอการเดินทางไปกลับแล้วเลือกเพียงไม่กี่ฟิลด์จากการตอบกลับ
ถ้ามือถือสามารถเรียกจุดสิ้นสุดเดียวล่ะ?
1) lura.server/frontpage/{id_user}
นั่นคือสิ่งที่ Lura สามารถทำเพื่อคุณได้ และนี่คือลักษณะของมัน:
Lura จะรวมข้อมูลทั้งหมดและส่งคืนเฉพาะฟิลด์ที่คุณต้องการ (ความแตกต่างของขนาดในกราฟ)
เยี่ยมชมเว็บไซต์ Lura Project สำหรับข้อมูลเพิ่มเติม
ซอร์สโค้ดสำหรับกรอบโครงการ Lura มันถูกออกแบบมาเพื่อทำงานกับมิดเดิลแวร์ของคุณเองและขยายการใช้งานโดยใช้ส่วนประกอบขนาดเล็กอิสระและสามารถนำกลับมาใช้ใหม่ได้ตามปรัชญา UNIX
ใช้ที่เก็บนี้หากคุณต้องการ สร้างจากแหล่งที่มาของ API Gateway หรือหากคุณต้องการ นำส่วนประกอบกลับมาใช้ใหม่ในแอปพลิเคชันอื่น
หากคุณต้องการเกตเวย์ API ที่ใช้งานได้อย่างสมบูรณ์คุณสามารถดาวน์โหลด Krakend Binary สำหรับสถาปัตยกรรมของคุณหรือสร้างด้วยตัวเอง
โครงการ Lura ถูกนำเสนอเป็น ห้องสมุด GO ที่คุณสามารถรวมไว้ในแอปพลิเคชัน GO ของคุณเองเพื่อสร้างพร็อกซีที่ทรงพลังหรือเกตเวย์ API สำหรับตัวอย่างที่สมบูรณ์ให้ตรวจสอบที่เก็บ Krakend CE
แน่นอนคุณจะต้องติดตั้งในระบบของคุณเพื่อรวบรวมรหัส
ตัวอย่างที่พร้อมใช้งาน:
แพ็คเกจ MainImport ("Flag" "Log" "OS" "github.com/luraproject/lura/config" "github.com/luraproject/lura/logging" "github.com/luraproject/lura/proxy" luraproject/lura/เราเตอร์/gin ") func main () {พอร์ต: = flag.int (" p ", 0, 0, "พอร์ตของบริการ") loglevel: = flag.string ("l", "ข้อผิดพลาด", "ระดับการบันทึก") debug: = flag.bool ("d", false, "เปิดใช้งานการดีบัก") configfile: = flag .String ("C", "/etc/lura/Configuration.json", "พา ธ ไปยังชื่อไฟล์การกำหนดค่า") flag.parse () parser: = config.newparser () serviceConfig, err: = parser.parse (*configfile) ถ้า err! = nil {log.fatal ("ข้อผิดพลาด:", err.error ()) } serviceConfig.debug = serviceConfig.debug || *debugif *พอร์ต! = 0 {serviceConfig.port = *พอร์ต} logger, _: = logging.newlogger ( *loglevel, os.stdout, "[lura]") Routerfactory: = gin.defaultFactory , logger) RouterFactory.new (). run (serviceConfig) -
เยี่ยมชมภาพรวม Framework สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับส่วนประกอบของโครงการ Lura
ไฟล์ config lura
ตรวจสอบผลลัพธ์มาตรฐานของส่วนประกอบ Lura หลายตัว
เรามีความสุขเสมอที่ได้รับผลงาน หากคุณมีคำถามข้อเสนอแนะข้อบกพร่องโปรดเปิดปัญหา หากคุณต้องการส่งรหัสให้สร้างปัญหาและส่งคำขอดึงมาให้เราเพื่อตรวจสอบ
อ่านข้อมูลเพิ่มเติมสำหรับข้อมูลเพิ่มเติม
ติดตามเราบน Twitter: @luraproject
เยี่ยมชมช่อง Slack ของเรา
อ่านเอกสาร
สนุกกับ Lura!