@Override
	public Response handle(JsonPath jsonPath, QueryAdapter queryAdapter, RepositoryMethodParameterProvider parameterProvider, Document requestBody) {
		String resourceName = jsonPath.getElementName();
		PathIds resourceIds = jsonPath.getIds();
		RegistryEntry registryEntry = resourceRegistry.getEntry(resourceName);
		if (registryEntry == null) {
			throw new ResourceNotFoundException(resourceName);
		}
		String id = resourceIds.getIds().get(0);

		@SuppressWarnings("unchecked")
		Class<? extends Serializable> idClass = (Class<? extends Serializable>) registryEntry.getResourceInformation().getIdField().getType();
		Serializable castedId = typeParser.parse(id, idClass);
		ResourceRepositoryAdapter resourceRepository = registryEntry.getResourceRepository(parameterProvider);
		JsonApiResponse entities = resourceRepository.findOne(castedId, queryAdapter);
		
		Document responseDocument = documentMapper.toDocument(entities, queryAdapter);
		
		// return explicit { data : null } if values found
		if(!responseDocument.getData().isPresent()){
			responseDocument.setData(Nullable.nullValue());
		}

		return new Response(responseDocument, 200);
	}
@ Override public Response handle ( JsonPath jsonPath , QueryAdapter queryAdapter , RepositoryMethodParameterProvider parameterProvider , Document requestBody ) { String resourceName = jsonPath . getElementName ( ) ; PathIds resourceIds = jsonPath . getIds ( ) ; RegistryEntry registryEntry = resourceRegistry . getEntry ( resourceName ) ; if ( registryEntry == null ) { throw new ResourceNotFoundException ( resourceName ) ; } String id = resourceIds . getIds ( ) . get ( 0 ) ; @ SuppressWarnings ( "unchecked" ) Class < ? extends Serializable > idClass = ( Class < ? extends Serializable > ) registryEntry . getResourceInformation ( ) . getIdField ( ) . getType ( ) ; Serializable castedId = typeParser . parse ( id , idClass ) ; ResourceRepositoryAdapter resourceRepository = registryEntry . getResourceRepository ( parameterProvider ) ; JsonApiResponse entities = resourceRepository . findOne ( castedId , queryAdapter ) ; Document responseDocument = documentMapper . toDocument ( entities , queryAdapter ) ; if ( ! responseDocument . getData ( ) . isPresent ( ) ) { responseDocument . setData ( Nullable . nullValue ( ) ) ; } return new Response ( responseDocument , 200 ) ; }
{@inheritDoc}

Passes the request to controller method.