/** * The method generates a default response. * @return The newly generated {@link RestMockResponse}. */ protected RestMockResponse generateResponse(){ RestMockResponse restMockResponse = new RestMockResponse(); restMockResponse.setName(AUTO_GENERATED_MOCK_RESPONSE_DEFAULT_NAME); restMockResponse.setHttpStatusCode(DEFAULT_RESPONSE_CODE); restMockResponse.setStatus(RestMockResponseStatus.ENABLED); restMockResponse.setUsingExpressions(true); return restMockResponse; }
@PreAuthorize("hasAuthority('READER') or hasAuthority('MODIFIER') or hasAuthority('ADMIN')") @RequestMapping(value = "/{restProjectId}/application/{restApplicationId}/resource/{restResourceId}/method/{restMethodId}/create/response", method = RequestMethod.GET) public ModelAndView displayCreatePage(@PathVariable final String restProjectId, @PathVariable final String restApplicationId, @PathVariable final String restResourceId, @PathVariable final String restMethodId) { final ReadRestMethodOutput output = serviceProcessor.process(ReadRestMethodInput.builder() .restProjectId(restProjectId) .restApplicationId(restApplicationId) .restResourceId(restResourceId) .restMethodId(restMethodId).build()); final ReadRestResourceQueryParametersOutput resourceQueryParameters = serviceProcessor.process(ReadRestResourceQueryParametersInput.builder() .projectId(restProjectId) .applicationId(restApplicationId) .resourceId(restResourceId) .build()); final RestMockResponse mockResponse = new RestMockResponse(); mockResponse.setBody(output.getRestMethod().getDefaultBody()); mockResponse.setHttpStatusCode(DEFAULT_HTTP_STATUS_CODE); final ModelAndView model = createPartialModelAndView(PAGE); model.addObject(REST_PROJECT_ID, restProjectId); model.addObject(REST_APPLICATION_ID, restApplicationId); model.addObject(REST_RESOURCE_ID, restResourceId); model.addObject(REST_METHOD_ID, restMethodId); model.addObject(REST_MOCK_RESPONSE, mockResponse); model.addObject(REST_MOCK_RESPONSE_STATUSES, RestMockResponseStatus.values()); model.addObject(REST_QUERY_PARAMETERS, resourceQueryParameters.getQueries()); return model; }
/** * The method generates a mocked response based on the provided {@link Response} and the * <code>httpStatusCode</code>. * @param httpStatusCode The HTTP status code that the mocked response will have. Please note that * any mock response with status code different from OK (200), will be * marked as disabled. * @param response The Swagger response that the mocked response will be based on. * @return A new {@link RestMockResponse} based on the provided {@link Response}. */ private RestMockResponse generateResponse(final int httpStatusCode, final Response response){ RestMockResponse restMockResponse = new RestMockResponse(); restMockResponse.setName(response.getDescription()); restMockResponse.setHttpStatusCode(httpStatusCode); restMockResponse.setUsingExpressions(true); if(httpStatusCode == DEFAULT_RESPONSE_CODE){ restMockResponse.setStatus(RestMockResponseStatus.ENABLED); } else { restMockResponse.setStatus(RestMockResponseStatus.DISABLED); } if(response.getHeaders() != null){ for(Map.Entry<String, Property> headerEntry : response.getHeaders().entrySet()){ String headerName = headerEntry.getKey(); HttpHeader httpHeader = new HttpHeader(); httpHeader.setName(headerName); // Swagger does not include an example value for the response. restMockResponse.getHttpHeaders().add(httpHeader); } } return restMockResponse; }
RestMockResponse restMockResponse = new RestMockResponse(); restMockResponse.setName(RESPONSE_NAME_PREFIX + (index + 1)); restMockResponse.setHttpStatusCode(httpStatusCode);
RestMockResponse restMockResponse = new RestMockResponse(); restMockResponse.setName(RESPONSE_NAME_PREFIX + (index + 1)); restMockResponse.setHttpStatusCode(httpStatusCode);
public static RestMockResponse generateRestMockResponse(){ final RestParameterQuery parameterQuery = new RestParameterQuery(); parameterQuery.setParameter("Parameter"); parameterQuery.setQuery("Query"); parameterQuery.setMatchAny(false); parameterQuery.setMatchCase(false); parameterQuery.setMatchRegex(false); final RestMockResponse restMockResponse = new RestMockResponse(); restMockResponse.setName("Rest mock response name"); restMockResponse.setBody("Rest mock response body"); restMockResponse.setId("REST MOCK RESPONSE"); restMockResponse.setStatus(RestMockResponseStatus.ENABLED); restMockResponse.setHttpStatusCode(200); restMockResponse.setParameterQueries(ImmutableList.of(parameterQuery)); return restMockResponse; } }
/** * The method provides the functionality to forward a request to another endpoint. The response * will be recorded and can later be used as a mocked response * @param restRequest The incoming request * @param restMethod The REST method which the incoming request belongs to * @return The response received from the external endpoint */ protected RestResponse forwardRequestAndRecordResponse(final RestRequest restRequest, final String projectId, final String applicationId, final String resourceId, final RestMethod restMethod, final Map<String, String> pathParameters){ final RestResponse response = forwardRequest(restRequest, projectId, applicationId, resourceId, restMethod, pathParameters); final RestMockResponse mockResponse = new RestMockResponse(); final Date date = new Date(); mockResponse.setBody(response.getBody()); mockResponse.setStatus(RestMockResponseStatus.ENABLED); mockResponse.setHttpHeaders(response.getHttpHeaders()); mockResponse.setName(RECORDED_RESPONSE_NAME + SPACE + DATE_FORMAT.format(date)); mockResponse.setHttpStatusCode(response.getHttpStatusCode()); serviceProcessor.processAsync(CreateRestMockResponseInput.builder() .projectId(projectId) .applicationId(applicationId) .resourceId(resourceId) .methodId(restMethod.getId()) .mockResponse(mockResponse) .build()); return response; }
restMockResponse1.setContentEncodings(new ArrayList<>()); restMockResponse1.setHttpHeaders(Arrays.asList(contentTypeHeader, acceptHeader)); restMockResponse1.setHttpStatusCode(200); restMockResponse1.setId("MockResponseId1"); restMockResponse1.setName("Mocked response 1"); restMockResponse2.setContentEncodings(new ArrayList<>()); restMockResponse2.setHttpHeaders(Arrays.asList(contentTypeHeader, acceptHeader)); restMockResponse2.setHttpStatusCode(200); restMockResponse2.setId("MockResponseId2"); restMockResponse2.setName("Mocked response 2");
restMockResponse.setContentEncodings(new ArrayList<>()); restMockResponse.setHttpHeaders(Arrays.asList(contentTypeHeader, acceptHeader)); restMockResponse.setHttpStatusCode(200); restMockResponse.setId("MockResponseId"); restMockResponse.setName("Mocked response");
mockResponse.setBody(mockResponseV1.getBody()); mockResponse.setStatus(mockResponseV1.getStatus()); mockResponse.setHttpStatusCode(mockResponseV1.getHttpStatusCode()); mockResponse.setUsingExpressions(mockResponseV1.isUsingExpressions());
/** * The process message is responsible for processing an incoming serviceTask and generate * a response based on the incoming serviceTask input * @param serviceTask The serviceTask that will be processed by the service * @return A result based on the processed incoming serviceTask * @see ServiceTask * @see ServiceResult */ @Override public ServiceResult<UpdateRestMockResponseOutput> process(final ServiceTask<UpdateRestMockResponseInput> serviceTask) { final UpdateRestMockResponseInput input = serviceTask.getInput(); final RestMockResponse existing = this.mockResponseRepository.findOne(input.getRestMockResponseId()); final RestMockResponse updatedRestMockResponse = input.getRestMockResponse(); existing.setName(updatedRestMockResponse.getName()); existing.setBody(updatedRestMockResponse.getBody()); existing.setHttpStatusCode(updatedRestMockResponse.getHttpStatusCode()); existing.setHttpHeaders(updatedRestMockResponse.getHttpHeaders()); existing.setStatus(updatedRestMockResponse.getStatus()); existing.setUsingExpressions(updatedRestMockResponse.isUsingExpressions()); existing.setParameterQueries(updatedRestMockResponse.getParameterQueries()); existing.setXpathExpressions(updatedRestMockResponse.getXpathExpressions()); existing.setJsonPathExpressions(updatedRestMockResponse.getJsonPathExpressions()); this.mockResponseRepository.update(input.getRestMockResponseId(), existing); return createServiceResult(UpdateRestMockResponseOutput.builder() .updatedRestMockResponse(updatedRestMockResponse) .build()); } }