/** * Run REST validation on API, stores results into apiEntry. * * @param apiEntry informations about API. */ private void validateTree(ApiEntry apiEntry) { RestValidator restValidator = new RestValidator(apiEntry.getResourceNodes()); String validation = ""; if (restValidator.validateApi()) { if (apiEntry.getQuestionnaires().evaluate().equals("")) { validation = "</p><h3>Great Job! The API is RESTful!</h3><p>"; } validation = validation + "</p><h4>Automatically checked constraints</h4><p>Cache constraint OK!<br />Layered System constraint OK!<br />Uniform Interface OK! (for resources under the API structure)</p>"; } else { ErrsAndWarns errsAndWarns = countErrsAndWarns(apiEntry); if (errsAndWarns.getErrorsCount() == 0) { validation = "</p><h4>Automatically checked constraints</h4><p>Cache constraint OK!<br />Layered System constraint OK!<br />Uniform Interface OK! (for resources under the API structure)<br /> But found " + errsAndWarns.getWarnsCount() + " warnings - see yellow marks below for details.</p>"; } else { validation = "</p><h4>Automatically checked constraints</h4><p>Your API is not RESTful, found " + errsAndWarns.getErrorsCount() + " errors and " + errsAndWarns.getWarnsCount() + " warnings - see colored marks below for details.</p>"; } } apiEntry.setMessage(validation); }
/** * Generates view of questionnaire for JSP and stores it into apiEntry. * * @param apiEntry for which the view is generated. */ private void generateViewOfQuestionnaires(ApiEntry apiEntry) { String evaluation = apiEntry.getQuestionnaires().evaluate(); StringBuilder sb = new StringBuilder(apiEntry.getMessage()); sb.append("\n<div id=\"questionnairesEvaluation\">"); sb.append("<h4>Questionnaires evaluation</h4>"); if (evaluation.equals("")) { sb.append("Client-Server OK!<br /> Stateless constraints OK!<br />"); } else { if (!evaluation.contains("This is violation of REST constraint: Client-Server.")) { sb.append("Client-Server constraint OK!<br />"); } else { sb.append("Client-Server constraint VIOLATION!<br />"); } if (!evaluation.contains("This is violation of REST constraint: Stateless.")) { sb.append("Stateless constraint OK!<br />"); } else { sb.append("Stateless constraint VIOLATION!<br />"); } sb.append(evaluation); } sb.append("</div>\n"); apiEntry.setMessage(sb.toString()); }