@RequestMapping(method = RequestMethod.GET, value = "/{region}/keys",
      produces = {APPLICATION_JSON_UTF8_VALUE})
  @Operation(summary = "list all keys", description = "List all keys in region")
  @ApiResponses({@ApiResponse(responseCode = "200", description = "OK"),
      @ApiResponse(responseCode = "401", description = "Invalid Username or Password."),
      @ApiResponse(responseCode = "403", description = "Insufficient privileges for operation."),
      @ApiResponse(responseCode = "404", description = "Region does not exist"),
      @ApiResponse(responseCode = "500", description = "GemFire throws an error or exception")})
  @PreAuthorize("@securityService.authorize('DATA', 'READ', #region)")
  public ResponseEntity<?> keys(@PathVariable("region") String region) {
    logger.debug("Reading all Keys in Region ({})...", region);

    region = decode(region);

    Object[] keys = getKeys(region, null);

    String listKeysAsJson = JSONUtils.formulateJsonForListKeys(keys, "keys");
    final HttpHeaders headers = new HttpHeaders();
    headers.setLocation(toUri(region, "keys"));
    return new ResponseEntity<>(listKeysAsJson, headers, HttpStatus.OK);
  }
List all keys for the given region in the GemFire cluster

@param region gemfire region
@return JSON document containing result
geode-web-api/src/main/java/org/apache/geode/rest/internal/web/controllers/CommonCrudController.java