Pippo: میکروفریمورکی اپن‌سورس برای زبان جاوا جهت توسعهٔ وب اپلیکیشن


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 روی سیستم‌تان است.