मैं कुछ महीनों से एक हॉबी प्रोजेक्ट पर काम कर रहा हूं, एक एमआईटी लाइसेंस प्राप्त एपीआई गेटवे जिसे किसी विशेष विक्रेता से स्वतंत्र होने के लिए डिज़ाइन किया गया है। ईमानदारी से कहूं तो मुझे लगता है कि यह काफी अच्छा चल रहा है। जैसे-जैसे मेरा कोड आधार बड़ा हुआ है, मुझे मुख्य भाग, यानी HTTP सर्वर, में सुधार के अवसर दिखे हैं। कोर HTTP सर्वर को अपने स्वयं के माइक्रो-फ्रेमवर्क में स्पिन करना एक तार्किक समाधान (और एक महान सीखने का अभ्यास!) की तरह लग रहा था।
किंडलिंग का परिचय, वह ईंधन जो आपके एप्लिकेशन को प्रज्वलित करेगा। किंडलिंग मानक जावा 21 लाइब्रेरी पर आधारित है, जिसमें कोई निर्भरता नहीं है। इसे किसी जादू का उपयोग किए बिना, प्रोग्राम करने योग्य बनाने के लिए डिज़ाइन किया गया है।
यहाँ किंडलिंग के साथ एक सरल हैलो वर्ल्ड है:
package io.kerosenelabs.kindling; import java.nio.file.Path; import java.util.HashMap; import io.kerosenelabs.kindling.constant.HttpMethod; import io.kerosenelabs.kindling.constant.HttpStatus; import io.kerosenelabs.kindling.exception.KindlingException; import io.kerosenelabs.kindling.handler.RequestHandler; public class Main { public static void main(String[] args) throws KindlingException { KindlingServer server = KindlingServer.getInstance(); // test request handler server.installRequestHandler(new RequestHandler() { /** * Tell the server what type of request this handler can work with */ @Override public boolean accepts(HttpMethod httpMethod, String resource) throws KindlingException { return httpMethod.equals(HttpMethod.GET) && resource.equals("/"); } /** * Do your business logic here */ @Override public HttpResponse handle(HttpRequest httpRequest) throws KindlingException { return new HttpResponse.Builder() .status(HttpStatus.OK) .headers(new HashMap() { { put("Content-Type", "text/html"); } }) .content("Hello from Kindling!
") .build(); } }); // serve our server server.serve(8443, Path.of("mykeystore.p12"), "password"); } }
सर्वर पर CURL अनुरोध भेजने से यह प्रतिक्रिया मिलती है:
> GET / HTTP/1.1 > Host: localhost:8443 > User-Agent: curl/7.88.1 > Accept: */* > * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): Hello from Kindling!
...बहुत बढ़िया, है ना?
कुछ बग हैं, जैसे प्रतिक्रिया में सामग्री-लंबाई गायब है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3