@Get("/api/v2/trace/{traceId}")
  @Blocking
  public AggregatedHttpResponse getTrace(@Param("traceId") String traceId) throws IOException {
    traceId = traceId != null ? traceId.trim() : null;
    traceId = Span.normalizeTraceId(traceId);
    List<Span> trace = storage.traces().getTrace(traceId).execute();
    if (trace.isEmpty()) {
      return AggregatedHttpResponse.of(NOT_FOUND, ANY_TEXT_TYPE, traceId + " not found");
    }
    return jsonResponse(SpanBytesEncoder.JSON_V2.encodeList(trace));
  }
The Cache-Control max-age (seconds) for /api/v2/services /api/v2/remoteServices and
/api/v2/spans
zipkin-server/src/main/java/zipkin2/server/internal/ZipkinQueryApiV2.java