-
Notifications
You must be signed in to change notification settings - Fork 18
v6: Refactor REST endpoints and JSON de-/serialization #387
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Also introduce sync/async split all the way to the root (WeaviateClient) level.
We don't want to expose it in VectorIndex.config(). It's more typing but a cleaner logic.
- WeaviateCollectionsClient/-Async.java - Async client available via sync_client.async() - Use centralized JSON serializer instead of passing base Gson instance around - Introduce REST Transport and Endpoint wrappers Fixed 'transient' vectorizer field on BaseVectorIndex, which would previously be ignored at deserialization. Now we manually exclude it during serialization in VectorIndex.CustomTypeAdapterFactory. Updated create-get-delete test in CollectionsITest.java
Update ReferencesITest. Fix WeaviateObject serialization. Minor improvements ( default values for list/map parameters );
Change vectorizer config param to vectorize**Class**Name
Move tests to the new location.
Otherwise serialization fails whenever no metrics are provided and List == null
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Orca Security Scan Summary
Status | Check | Issues by priority | |
---|---|---|---|
![]() |
Secrets | ![]() ![]() ![]() ![]() |
View in Orca |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #373
tl;dr
io.weaviate.client6.v1.collection
namespace is replaced byio.weaviate.client.v1.api
.io.weaviate.client6.internal
namespace is replaced byio.weaviate.client.v1.internal
.Endpoint
. This cleaned upWeaviateDataClient
andWeaviateCollectionConfigClient
a lot, letting these classes focus on the presenting the public API.CustomTypeAdapterFactory.INSTANCE
):references
(beacons) are merged withproperties
references
(cross-reference definitions) are merged withproperties
JSON.java
-- it is thread-safe and keeps all configuration in one place.Async
counterparts for each client:The
.async()
idiom for creating an async client from v5 is preserved:Async client returns CompletableFuture of whatever the sync client returns (T).
This will let users manage async calls in a familiar manner, re-using any existing "machinery" for working with completable futures they may already have.
ObjectReference(objects: List<WeaviateObject>)
wrapper in favor of a simplerList<WeaviateObject>
design. There is no additional information that ObjectReference can encode and it only adds layers.QueryRequest.rpc()
to reflect the new logic