अपने कोड के Restlet टिप्पणियों का उपयोग करने के साथ ऐसा कर सकते हैं और या तो सामग्री से बातचीत करते उपयोगकर्ता-एजेंट के Accept
हैडर पर निर्भर करता है या Restlet के TunnelService का उपयोग कर यूआरआई (में विस्तार निर्दिष्ट काम करते हैं और MetadataService)। यहाँ एक उदाहरण (Restlet 2 के आधार पर) है:
public class TestApplication extends Application {
public static class TestResource extends ServerResource {
@Get("txt")
public Representation toText() {
return new StringRepresentation("Hello!",
MediaType.TEXT_PLAIN);
}
@Get("xml")
public Representation toXml() {
return new StringRepresentation("<test>Hello</test>",
MediaType.APPLICATION_XML);
}
}
@Override
public synchronized Restlet createInboundRoot() {
getTunnelService().setEnabled(true);
getTunnelService().setExtensionsTunnel(true);
Router router = new Router();
router.attachDefault(TestResource.class);
return router;
}
public static void main(String[] args) throws Exception {
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8182);
component.getDefaultHost().attachDefault(new TestApplication());
component.start();
}
}
सामग्री बातचीत स्वीकार करें शीर्षक के माध्यम से काम करता है:
curl -H "Accept: text/plain" http://localhost:8182/test
रिटर्न Hello!
curl -H "Accept: application/xml" http://localhost:8182/test
रिटर्न <test>Hello</test>
यह भी एक्सटेंशन के माध्यम से काम करता है (getTunnelService().setExtensionsTunnel(true)
के लिए धन्यवाद):
curl http://localhost:8182/test.txt
रिटर्न Hello!
curl http://localhost:8182/test.xml
रिटर्न <test>Hello</test>
वहाँ एक default list of extension to media-type mapping है, लेकिन इस MetadataService के माध्यम से विन्यस्त किया जा सकता।
जावा टैग जोड़ा जाना चाहिए। – h3xStream