use("/list", new APIList(model, mainmodule))
use("/search", new APISearch(model, mainmodule))
use("/random", new APIRandom(model, mainmodule))
+ use("/entity/:id", new APIEntity(model, mainmodule))
use("/code/:id", new APIEntityCode(model, mainmodule, modelbuilder))
use("/uml/:id", new APIEntityUML(model, mainmodule))
end
end
end
+# Return the JSON representation of a MEntity.
+#
+# Example: `GET /entity/core::Array`
+class APIEntity
+ super APIHandler
+
+ redef fun get(req, res) do
+ var mentity = mentity_from_uri(req, res)
+ if mentity == null then return
+ res.json mentity.api_json(self)
+ end
+end
+
# Return a UML representation of MEntity.
#
res.error(404)
return
end
- if req.is_json_asked then
- res.json(mentity.to_json)
- return
- end
-
var view = new HtmlDocPage(modelbuilder, mentity)
res.send_view(view)
end
fun send_view(view: NitView, status: nullable Int) do send(view.render, status)
end
-redef class HttpRequest
- # Does the client asked for a json formatted response?
- #
- # Checks the URL get parameter `?json=true`.
- fun is_json_asked: Bool do return bool_arg("json") or else false
-end
-
redef class MEntity
# URL to `self` within the web interface.