Mason เป็นเลเยอร์การเข้าถึงข้อมูลแบบโอเพนซอร์ซที่มีน้ำหนักเบาสำหรับทรัพยากร REST ที่ออกแบบมาเพื่อใช้ในแอปพลิเคชันเว็บ Java มันจัดการคำขอ API ที่เข้ามาและกำหนดเส้นทางพารามิเตอร์ไปยังทรัพยากรเหล่านี้
< dependency >
< groupId >com.metamug</ groupId >
< artifactId >mason</ artifactId >
< version >4.8</ version >
</ dependency >ใช้แท็ก JSP สำหรับการแก้ไขเคียวรีฐานข้อมูลและการจัดการคำขอ ในการปรับใช้ REST APIs โดยไม่ต้องรวบรวม/ปรับใช้คลาส Java สร้าง REST APIs ด้วยแท็ก JSP
< jsp : directive .include file = " ../fragments/mason-init.jspf " />
<%-- customer.jsp --%>
< m : resource >
< m : request method = " GET " >
< sql : query var = " customers " dataSource = " ${datasource} " >
SELECT name, address, phone, type from retail_customer
</ sql : query >
< c : set target = " ${output} " property = " customers " value = " ${customers} " />
</ m : request >
</ m : resource >ตัวอย่างโครงการ
Mason เปลี่ยน JSP แบบเก่าของคุณ (ด้วยไลบรารีแท็กที่เรียบร้อย) เป็นทรัพยากร REST Mason ไม่สนับสนุนให้ใช้สคริปต์ในทรัพยากร JSP
คุณสามารถจัดการได้รับโพสต์ใส่ลบคำขอใน JSP ของคุณ Mason ได้รับการทดสอบกับ Tomcat 9 Jstl.jar ที่จัดส่งกับ Tomcat ทำให้ JSTL ทำงานได้
เรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดค่า JSP ที่นี่ https://tomcat.apache.org/tomcat-9.0-doc/jasper-howto.html
คุณสามารถเขียนแบบสอบถามฐานข้อมูลภายในไฟล์ทรัพยากร jsp ดังที่เห็นในตัวอย่างด้านบนหรือคุณสามารถวางไว้ใน {webAppDir}/WEB-INF/classes/query.properties ไฟล์และอ้างอิงภายในไฟล์ JSP เพื่อนำกลับมาใช้ใหม่
Acceptโคลนและแพ็คเกจโครงการด้วย MVN
mvn clean package
หลังจากนั้นคุณสามารถค้นหา mtg-mason-1.0.jar ภายในโฟลเดอร์เป้าหมาย คุณสามารถใช้ขวดนี้เป็นการพึ่งพาใน Java Webapp ของคุณ
วางไฟล์ jar mason ใน {webAppDir}/WEB-INF/lib
ดาวน์โหลดไฟล์ JSTL JAR และวางไว้ใน {webAppDir}/WEB-INF/lib
สร้างโฟลเดอร์ {webAppDir}/WEB-INF/resources/{resourceVersion} และวางไฟล์ JSP ของคุณที่นี่ ตัวอย่างเช่น mywebapp/WEB-INF/resources/v1.0/foo.jsp
นำเข้า mtg-mason.tld ภายในไฟล์ JSP ของคุณ taglib นี้มีอยู่ในขวดก่ออิฐและเปิดใช้งานคำนำหน้า MTG คุณจะต้องนำเข้า JSTL Taglib ไฟล์ JSP ของคุณควรมีสิ่งต่อไปนี้
<% @taglib uri = " http://java.sun.com/jsp/jstl/core " prefix = " c " %>
<% @taglib uri = " http://java.sun.com/jsp/jstl/sql " prefix = " sql " %>
<% @taglib uri = " mtg-mason.tld " prefix = " m " %>
<%@ page trimDirectiveWhitespaces="true" %>{webAppDir}/WEB-INF/web.xml < filter >
< filter-name >Router</ filter-name >
< filter-class >com.metamug.mason.Router</ filter-class >
</ filter >
< filter-mapping >
< filter-name >Router</ filter-name >
< url-pattern >/*</ url-pattern >
< init-param >
< param-name >datasource</ param-name >
< param-value >jdbc/mason</ param-value >
</ init-param >
</ filter-mapping >คำขอทั้งหมดที่ทำกับทรัพยากร JSP จะถูกส่งผ่านตัวกรองนี้
6. กำหนดค่าแหล่งข้อมูลของคุณในไฟล์ {webAppDir}/META-INF/context.xml
คุณสามารถดูตัวอย่าง WebApp
ยกเว้น Javaee-Web-API เนื่องจากจะมีอยู่ในแอปพลิเคชันเซิร์ฟเวอร์ของคุณและใด ๆ จาก HSQL, MySQL หรือ PostgreSQL นอกจากนี้เรายังสนับสนุนฐานข้อมูล Oracle แต่เนื่องจากการออกใบอนุญาตเราไม่สามารถจัดส่งไดรเวอร์ Oracle JDBC ได้ ดังนั้นในกรณีที่คุณใช้ฐานข้อมูล Oracle คุณจะต้องติดตั้งไดรเวอร์ด้วยตนเองเพื่อการพึ่งพาในโครงการของคุณ
คำแนะนำเกี่ยวกับวิธีการทำเช่นเดียวกันในลิงค์ด้านล่าง (คุณสามารถอ้างอิงได้อย่างใดอย่างหนึ่ง) https://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-your-your-maven-local-repository/ หรือ https://stackoverflow.com/a/1074971/4800126
Mason รองรับ application/xml , applicaton/json และ application/json+dataset อ่านเพิ่มเติมเกี่ยวกับวิธีการใช้งานที่นี่ https://metamug.com/docs/api-request
Mason สนับสนุน Groovy สำหรับการเขียนสคริปต์ คุณต้องเก็บสคริปต์ไว้ใน {webAppDir}/WEB-INF/scripts
สคริปต์ตัวอย่าง
// test.groovy
def params = _request . getParams()
res[ ' message ' ] = ' Hello ' + params[ ' name ' ] สคริปต์สามารถเรียกใช้โดยใช้แท็ก script ในทรัพยากร JSP
< m : script file = " test.groovy " var = " res " />แยกการซื้อคืนนี้และส่ง PR กับปัญหาที่ระบุไว้ การบริจาคใด ๆ สำหรับโครงการนี้จะถูกจ่ายให้กับนักพัฒนาแต่ละคนที่ทำงานในฐานะส่วนบุคคลในโครงการนี้ เพื่อให้รางวัลแก่พวกเขาสำหรับการมีส่วนร่วมและทำให้โครงการชุมชน Mason