protected void addUpdateResponse(RestdContext ctx, SqlCommand sc, FuncActionBuilder action, MApiOperationBuilder mo) { //todo : MApiResponseBuilder r = new MApiResponseBuilder(); r.setStatus(200); r.setType(MSimpleTypes.INTEGER); r.setDescription("Success"); mo.addResponse(r); }
protected MApiResponseBuilder toApiResponse(MetaResponse mr) { MApiResponseBuilder r = new MApiResponseBuilder(); MetaUtils.copyTitled(mr, r); r.setStatus(mr.getStatus()); r.setType(mr.getResolvedType()); r.setFile(mr.isFile()); return r; }
public MApiResponseBuilder getResponse(String name) { for(MApiResponseBuilder r : responses) { if(r.getName().equals(name)) { return r; } } return null; }
public static MApiResponseBuilder success(int status) { MApiResponseBuilder r = new MApiResponseBuilder(); r.setStatus(status); r.setSummary("Success"); return r; }
protected MApiResponseBuilder addNoContentResponse(FuncActionBuilder action, RestdModel model) { action.setReturnType(ApiResponse.class); MApiResponseBuilder r = new MApiResponseBuilder(); r.setStatus(204); r.setDescription("Success"); action.setExtension(new MApiResponseBuilder[]{r}); return r; }
public MApiResponseBuilder readResponse(String name, Map<String,Object> map) { MApiResponseBuilder mr = new MApiResponseBuilder(); JsonObject resp = JsonObject.of(map); mr.setName(name); mr.setSummary(resp.getString(SUMMARY)); mr.setDescription(resp.getString(DESCRIPTION)); try{ mr.setStatus(Integer.parseInt(name)); }catch(NumberFormatException e) { //not a http status. } JsonObject schema = resp.getObject(SCHEMA); if(null != schema) { mr.setType(readType(schema)); } return mr; }
MApiResponseBuilder r = new MApiResponseBuilder(); r.setName(name); r.setStatus(status); r.setDescription(reader.getAttribute(DESC)); r.setTypeClass(c); } else { r.setType(MVoidType.TYPE); r.setDescription(reader.getElementTextAndEnd());
MApiResponseBuilder r = new MApiResponseBuilder(); r.setStatus(200); r.setDescription("OK"); mo.addResponse(r); hasReturnType = false; }else{ MApiResponseBuilder r = mo.getResponses().get(0); if(null == r.getType()) { hasReturnType = false; }else { returnType = r.getType();
protected void resolveApiResponseType(ApiMetadataContext context, ApiMetadataBuilder m, Class<?> declaringClass, Class<?> type, Type genericType, MApiResponseBuilder resp) { if(isResponseFileType(type)) { resp.setType(MSimpleTypes.BINARY); resp.setFile(true); }else{ resp.setType(createMType(context, m, declaringClass, type, genericType)); } }
protected void createResponses(ApiMetadataContext context, ApiMetadataBuilder m) { ApiConfig c = context.getConfig(); c.getCommonResponses().forEach((name, r) -> { MType type = r.getType(); if(type.isComplexType()) { MComplexType ct = type.asComplexType(); if(!m.containsModel(ct.getName())) { tryAddModel(context, m, ct); } type = ct.createTypeRef(); } MApiResponseBuilder rb = new MApiResponseBuilder(r); rb.setType(type); m.putResponse(name, rb); }); }
protected MApiResponseBuilder createApiResponse(ApiMetadataContext context, ApiMetadataBuilder m, Route route, Response a) { MApiResponseBuilder resp = new MApiResponseBuilder(); resp.setStatus(a.status()); if(!route.getAction().hasReturnValue()) { return resp; } Class<?> returnType = a.type(); Type genericType = a.genericType(); if(Void.class.equals(returnType)) { returnType = route.getAction().getReturnType(); genericType = route.getAction().getGenericReturnType(); } resolveApiResponseType(context, m, route.getAction().getControllerClass(), returnType, genericType, resp); return resp; }
public MApiResponseBuilder(MApiResponse r) { this.name = r.getName(); this.status = r.getStatus(); this.type = r.getType(); this.file = r.isFile(); this.setSummary(r.getSummary()); this.setDescription(r.getDescription()); for(MApiHeader header : r.getHeaders()) { headers.add(new MApiHeaderBuilder(header)); } }
protected void processOperation(ApiMetadataContext context, Map<Class<?>, ClassDoc> docs, MApiOperationBuilder o) { ReflectMethod method = o.getRoute().getAction().getMethod(); //operation if(null != method) { ClassDoc cdoc = resolveClassDoc(docs, method.getDeclaringClass(), false); MethodDoc mdoc = cdoc.methods.get(method.getName()); if(null != mdoc) { if(!Strings.isEmpty(mdoc.description)) { o.setDescription(mdoc.description); } if(!Strings.isEmpty(mdoc.response)) { for(MApiResponseBuilder resp : o.getResponses()) { if(resp.getStatus() >= 200 && resp.getStatus() < 300) { resp.setDescription(mdoc.response); break; } } } //parameters o.getParameters().forEach((param) -> processParameter(context, docs, mdoc, param, method)); } } }
public void createCrudOperation(ApiConfigurator c, RestdContext context, RestdModel model, String path, String name, Callback callback) { FuncActionBuilder action = new FuncActionBuilder(name); RouteBuilder route = rm.createRoute("POST", path); if (null != callback) { callback.preAddArguments(action); } action.setFunction(createFunction(context, model, action.getArguments().size())); addModelArgumentForCreate(context, action, model); if (null != callback) { callback.postAddArguments(action); } addModelResponse(action, model).setStatus(201); preConfigure(context, model, action); route.setAction(action.build()); setCrudOperation(route, NAME); postConfigure(context, model, route); if (isOperationExists(context, route)) { return; } c.addDynamicRoute(rm.loadRoute(context.getRoutes(), route)); }
public void putResponse(String name, MApiResponse r) { putResponse(name, new MApiResponseBuilder(r)); }
protected MApiResponseBuilder addModelResponse(FuncActionBuilder action, RestdModel model) { action.setReturnType(ApiResponse.class); MApiResponseBuilder r = newModelResponse(model); r.setDescription("Success"); action.setExtension(new MApiResponseBuilder[]{r}); return r; }
@Override public void postCreate(BeanFactory factory) throws Throwable { configs = factory.getAppConfig().getExtension(ApiConfigs.class); if(configs == null){ return; } //oauth this.oauthConfig.updateFrom(configs.getOAuthConfig()); //common responses. configs.getCommonResponses().forEach((key, builder)->{ builder.setTypeManager(typeManager); commonResponses.put(key,builder.build()); }); //check model class name configs.getCommonModels().forEach(m -> { if(!Strings.isEmpty(m.getClassName()) && null == Classes.tryForName(m.getClassName())) { throw new ApiConfigException("The model class '" + m.getClassName() + "' not found"); } }); //check param class name configs.getCommonParams().forEach(m -> { if(!Strings.isEmpty(m.getClassName()) && null == Classes.tryForName(m.getClassName())) { throw new ApiConfigException("The param class '" + m.getClassName() + "' not found"); } }); //auto register configured api(s). configs.getApis().values().forEach(this::doAdd); }
final MType returnType = mo.getResponses().get(0).getType(); action.setFunction(new SqlFunction(od.getScriptPath(), op.key, dao, sc, returnType));
public static MApiResponseBuilder ok() { MApiResponseBuilder r = new MApiResponseBuilder(); r.setStatus(HTTP.SC_OK); r.setSummary("Success"); return r; }