+/**
+ * Dispatch the request 'req' with the 'context' to the
+ * method of 'api' and 'verb'.
+ * @param req the request to dispatch
+ * @param context the context of the request
+ * @param api the api of the verb
+ * @param verb the verb within the api
+ */
+void afb_apis_call(struct afb_req req, struct afb_context *context, const char *api, const char *verb)
+{
+ const struct api_desc *a;
+
+ /* init hooking the request */
+ req = afb_hook_req_call(req, context, api, verb);
+
+ /* search the api */
+ a = search(api);
+ if (!a)
+ afb_req_fail(req, "fail", "api not found");
+ else {
+ context->api_key = a->api.closure;
+ a->api.call(a->api.closure, req, context, verb);
+ }
+}
+
+/**
+ * Starts a service by its 'api' name.
+ * @param api name of the service to start
+ * @param share_session if true start the servic"e in a shared session
+ * if false start it in its own session
+ * @param onneed if true start the service if possible, if false the api
+ * must be a service
+ * @return a positive number on success
+ */