Skip to content

Commit 0e7f7ba

Browse files
authored
refactor!: refactor request handling to exclude authentication-related logic. (#208)
- api key belongs to the client itself, not to individual requests - Removed `apiKey` handling from API requests and tests. - Refactored all client operations to use `RequestContext` for cleaner request construction. - Updated tests to reflect the removal of authentication-related assertions. Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com>
1 parent 31adfe7 commit 0e7f7ba

31 files changed

Lines changed: 281 additions & 465 deletions

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/DoclingServeApi.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package ai.docling.serve.api;
22

3+
import org.jspecify.annotations.Nullable;
4+
35
/**
46
* Docling Serve API interface.
57
*/
@@ -23,6 +25,19 @@ public interface DoclingServeApi
2325
* @param <B> the type of the concrete builder implementation.
2426
*/
2527
interface DoclingApiBuilder<T extends DoclingServeApi, B extends DoclingApiBuilder<T, B>> {
28+
/**
29+
* Sets the API key for authenticating requests made by the client being built.
30+
*
31+
* The provided API key will be used as a credential to authorize and authenticate
32+
* API requests. This method updates the configuration of the builder with the specified
33+
* API key and ensures that the API client includes it in its requests as required for
34+
* secure access to the API.
35+
*
36+
* @param apiKey the API key to be used for authenticating API requests
37+
* @return {@code this} builder instance for fluent API usage
38+
*/
39+
B apiKey(@Nullable String apiKey);
40+
2641
/**
2742
* Enables logging of requests for the API client being built. This can be useful for
2843
* debugging or monitoring the behavior of requests made to the API.

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/auth/AuthenticatedRequest.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/auth/Authentication.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/auth/package-info.java

Lines changed: 0 additions & 4 deletions
This file was deleted.

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/chunk/request/HierarchicalChunkDocumentRequest.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@
44

55
import org.jspecify.annotations.Nullable;
66

7-
import com.fasterxml.jackson.annotation.JsonIgnore;
87
import com.fasterxml.jackson.annotation.JsonInclude;
98
import com.fasterxml.jackson.annotation.JsonProperty;
109
import com.fasterxml.jackson.annotation.JsonSetter;
1110
import com.fasterxml.jackson.annotation.Nulls;
1211

13-
import ai.docling.serve.api.auth.AuthenticatedRequest;
14-
import ai.docling.serve.api.auth.Authentication;
1512
import ai.docling.serve.api.chunk.request.options.HierarchicalChunkerOptions;
1613
import ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;
1714
import ai.docling.serve.api.convert.request.source.Source;
@@ -27,7 +24,7 @@
2724
@lombok.Builder(toBuilder = true)
2825
@lombok.Getter
2926
@lombok.ToString
30-
public class HierarchicalChunkDocumentRequest implements AuthenticatedRequest {
27+
public class HierarchicalChunkDocumentRequest {
3128

3229
@JsonProperty("sources")
3330
@JsonSetter(nulls = Nulls.AS_EMPTY)
@@ -51,11 +48,6 @@ public class HierarchicalChunkDocumentRequest implements AuthenticatedRequest {
5148
@lombok.Builder.Default
5249
private HierarchicalChunkerOptions chunkingOptions = HierarchicalChunkerOptions.builder().build();
5350

54-
@JsonIgnore
55-
@lombok.NonNull
56-
@lombok.Builder.Default
57-
private Authentication authentication = Authentication.builder().build();
58-
5951
@tools.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
6052
public static class Builder { }
6153

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/chunk/request/HybridChunkDocumentRequest.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@
44

55
import org.jspecify.annotations.Nullable;
66

7-
import com.fasterxml.jackson.annotation.JsonIgnore;
87
import com.fasterxml.jackson.annotation.JsonInclude;
98
import com.fasterxml.jackson.annotation.JsonProperty;
109
import com.fasterxml.jackson.annotation.JsonSetter;
1110
import com.fasterxml.jackson.annotation.Nulls;
1211

13-
import ai.docling.serve.api.auth.AuthenticatedRequest;
14-
import ai.docling.serve.api.auth.Authentication;
1512
import ai.docling.serve.api.chunk.request.options.HybridChunkerOptions;
1613
import ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;
1714
import ai.docling.serve.api.convert.request.source.Source;
@@ -27,7 +24,7 @@
2724
@lombok.Builder(toBuilder = true)
2825
@lombok.Getter
2926
@lombok.ToString
30-
public class HybridChunkDocumentRequest implements AuthenticatedRequest {
27+
public class HybridChunkDocumentRequest {
3128

3229
@JsonProperty("sources")
3330
@JsonSetter(nulls = Nulls.AS_EMPTY)
@@ -51,11 +48,6 @@ public class HybridChunkDocumentRequest implements AuthenticatedRequest {
5148
@lombok.Builder.Default
5249
private HybridChunkerOptions chunkingOptions = HybridChunkerOptions.builder().build();
5350

54-
@JsonIgnore
55-
@lombok.NonNull
56-
@lombok.Builder.Default
57-
private Authentication authentication = Authentication.builder().build();
58-
5951
@tools.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
6052
public static class Builder { }
6153

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package ai.docling.serve.api.clear.request;
22

3-
import com.fasterxml.jackson.annotation.JsonIgnore;
4-
5-
import ai.docling.serve.api.auth.AuthenticatedRequest;
6-
import ai.docling.serve.api.auth.Authentication;
7-
83
/**
94
* Represents a request to clear or reset configured converters using the Docling Serve API.
105
*
@@ -22,9 +17,5 @@
2217
@lombok.Builder(toBuilder = true)
2318
@lombok.Getter
2419
@lombok.ToString
25-
public class ClearConvertersRequest implements AuthenticatedRequest {
26-
@JsonIgnore
27-
@lombok.NonNull
28-
@lombok.Builder.Default
29-
private Authentication authentication = Authentication.builder().build();
20+
public class ClearConvertersRequest {
3021
}

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/clear/request/ClearResultsRequest.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22

33
import java.time.Duration;
44

5-
import com.fasterxml.jackson.annotation.JsonIgnore;
6-
7-
import ai.docling.serve.api.auth.AuthenticatedRequest;
8-
import ai.docling.serve.api.auth.Authentication;
9-
105
/**
116
* Represents a request to clear stale data via the Docling Serve Clear API.
127
* This class provides a mechanism to specify a threshold duration, after which data
@@ -22,7 +17,7 @@
2217
@lombok.Builder(toBuilder = true)
2318
@lombok.Getter
2419
@lombok.ToString
25-
public class ClearResultsRequest implements AuthenticatedRequest {
20+
public class ClearResultsRequest {
2621
/**
2722
* Represents the default duration used as a threshold for clearing stale results
2823
* or data in the Docling Serve Clear API. Results older than this duration
@@ -35,9 +30,4 @@ public class ClearResultsRequest implements AuthenticatedRequest {
3530
@lombok.NonNull
3631
@lombok.Builder.Default
3732
private Duration olderThen = DEFAULT_OLDER_THAN;
38-
39-
@JsonIgnore
40-
@lombok.NonNull
41-
@lombok.Builder.Default
42-
private Authentication authentication = Authentication.builder().build();
4333
}

docling-serve/docling-serve-api/src/main/java/ai/docling/serve/api/convert/request/ConvertDocumentRequest.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@
44

55
import org.jspecify.annotations.Nullable;
66

7-
import com.fasterxml.jackson.annotation.JsonIgnore;
87
import com.fasterxml.jackson.annotation.JsonInclude;
98
import com.fasterxml.jackson.annotation.JsonProperty;
109
import com.fasterxml.jackson.annotation.JsonSetter;
1110
import com.fasterxml.jackson.annotation.Nulls;
1211

13-
import ai.docling.serve.api.auth.AuthenticatedRequest;
14-
import ai.docling.serve.api.auth.Authentication;
1512
import ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;
1613
import ai.docling.serve.api.convert.request.source.Source;
1714
import ai.docling.serve.api.convert.request.target.Target;
@@ -30,7 +27,7 @@
3027
@lombok.Builder(toBuilder = true)
3128
@lombok.Getter
3229
@lombok.ToString
33-
public class ConvertDocumentRequest implements AuthenticatedRequest {
30+
public class ConvertDocumentRequest {
3431
@JsonProperty("sources")
3532
@JsonSetter(nulls = Nulls.AS_EMPTY)
3633
@lombok.Singular
@@ -45,11 +42,6 @@ public class ConvertDocumentRequest implements AuthenticatedRequest {
4542
@Nullable
4643
private Target target;
4744

48-
@JsonIgnore
49-
@lombok.NonNull
50-
@lombok.Builder.Default
51-
private Authentication authentication = Authentication.builder().build();
52-
5345
@tools.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
5446
public static class Builder { }
5547
}
Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package ai.docling.serve.api.task.request;
22

3-
import com.fasterxml.jackson.annotation.JsonIgnore;
4-
5-
import ai.docling.serve.api.auth.AuthenticatedRequest;
6-
import ai.docling.serve.api.auth.Authentication;
7-
83
/**
94
* Represents a request to retrieve the result of a task.
105
*
@@ -20,12 +15,7 @@
2015
@lombok.Builder(toBuilder = true)
2116
@lombok.Getter
2217
@lombok.ToString
23-
public class TaskResultRequest implements AuthenticatedRequest {
18+
public class TaskResultRequest {
2419
@lombok.NonNull
2520
private String taskId;
26-
27-
@JsonIgnore
28-
@lombok.NonNull
29-
@lombok.Builder.Default
30-
private Authentication authentication = Authentication.builder().build();
3121
}

0 commit comments

Comments
 (0)