package org.jooby.internal.spec; import java.util.List; import org.jooby.Jooby; import org.jooby.Results; import org.jooby.spec.RouteProcessor; import org.jooby.spec.RouteSpec; import org.junit.Test; import apps.DB; import apps.model.Pet; public class DocApp extends Jooby { { /** * Everything about your Pets. */ use("/api/pets") /** * List pets ordered by name. * * @param start Start offset, useful for paging. Default is <code>0</code>. * @param max Max page size, useful for paging. Default is <code>200</code>. * @return Pets ordered by name. */ .get(req -> { int start = req.param("start").intValue(0); int max = req.param("max").intValue(200); DB db = req.require(DB.class); List<Pet> pets = db.findAll(Pet.class, start, max); return pets; }) /** * Find pet by ID * * @param id Pet ID. * @return Returns <code>200</code> with a single pet or <code>404</code> */ .get("/:id", req -> { int id = req.param("id").intValue(); DB db = req.require(DB.class); Pet pet = db.find(Pet.class, id); return pet; }) /** * Add a new pet to the store. * * @param body Pet object that needs to be added to the store. * @return Returns a saved pet. */ .post(req -> { Pet pet = req.body().to(Pet.class); DB db = req.require(DB.class); db.save(pet); return pet; }) /** * Update an existing pet. * * @param body Pet object that needs to be updated. * @return Returns a saved pet. */ .put(req -> { Pet pet = req.body().to(Pet.class); DB db = req.require(DB.class); db.save(pet); return pet; }) /** * Deletes a pet by ID. * * @param id Pet ID. * @return A <code>204</code> */ .delete("/:id", req -> { int id = req.param("id").intValue(); DB db = req.require(DB.class); db.delete(Pet.class, id); return Results.noContent(); }) .produces("json") .consumes("json"); } @Test public void check() throws Exception { List<RouteSpec> specs1 = new RouteProcessor().process(new DocApp()); specs1.forEach(System.out::println); } }