Pippo میکروفریمورکی اپنسورس تحت لایسنس آپاچی است که با کمترین میزان وابستگی، امکان پیادهسازی سریع پروژههای تحت وب را برای دولوپرهای زبان برنامهنویسی جاوا فراهم میکند و این در حالی است که قابلیت پیادهسازی اپلیکیشنهای کوچک، متوسط و همچنین اپلیکیشنهای مبتنی بر معماری میکروسرویس را دارا است (برای آشنایی بیشتر با مفهوم میکروسرویس، به مقالهٔ میکروسرویس (Microservice) چیست؟ مراجعه نمایید.)
Pippo یک ویژگی اصلی دارد به نام سادگی که دولوپرهایش بر آن تأکید دارند مضاف بر اینکه کِرنِل بسیار کمحجمی دارد و تلاش دولوپرهایش بر این است که در آینده نیز آن را تا حد ممکن ساده و کمحجم نگاه دارند و قابلیتهای جدید را به ماژولهای Pippo و همچنین ماژولها و منابع به اصطلاح Third Party اضافه کنند. همچنین دولوپرهای جاوا برای استفاده از این فریمورک ملزم به استفاده از یک Template Engine خاص یا Embedded Web Server نیستند بلکه گزینههای متعددی در اختیار خواهند داشت. به عنوان نمونه کد نوشته شده با این فریمورک داریم:
public class BasicApplication extends Application {
@Override
protected void onInit() {
// send 'Hello World' as response
GET("/", routeContext -> routeContext.send("Hello World"));
// send a file as response
GET("/file", routeContext -> routeContext.send(new File("pom.xml")));
// send a json as response
GET("/json", routeContext -> {
Contact contact = createContact();
routeContext.json().send(contact);
});
// send xml as response
GET("/xml", routeContext -> {
Contact contact = createContact();
routeContext.xml().send(contact);
});
// send an object and negotiate the Response content-type, default to XML
GET("/negotiate", routeContext -> {
Contact contact = createContact();
routeContext.xml().negotiateContentType().send(contact);
});
// send a template with name "hello" as response
GET("/template", routeContext -> {
routeContext.setLocal("greeting", "Hello"); // template's model/context
routeContext.render("hello");
});
}
private Contact createContact() {
return new Contact()
.setId(12345)
.setName("John")
.setPhone("0733434435")
.setAddress("Sunflower Street, No. 6");
}
}
در پایان باید به این نکته هم اشارهای داشته باشیم که Pippo بر پایهٔ Java Servlet 3.1 طراحی شده و نیازمند به نصب Java 8 روی سیستمتان است.