Skip to content

Commit 54621e7

Browse files
authored
feat: improve REST server route design (#113)
Closes #111
1 parent 7dfe5ac commit 54621e7

108 files changed

Lines changed: 3832 additions & 1449 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

java/checkstyle-suppressions.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<suppressions>
88
<!-- Generated Apache client server configuration having a method with name 'URL' -->
99
<suppress checks="MethodName" files="lance-namespace-apache-client/src/main/java/com/lancedb/lance/namespace/client/apache/ServerConfiguration.java"/>
10+
<suppress checks="LineLength" files="lance-namespace-apache-client/src/main/java/com/lancedb/lance/namespace/client/apache/api/*"/>
1011
<suppress checks="LineLength" files="lance-namespace-springboot-server/src/main/java/com/lancedb/lance/namespace/server/springboot/*"/>
1112
<suppress checks="RedundantModifier" files="lance-namespace-springboot-server/src/main/java/com/lancedb/lance/namespace/server/springboot/*"/>
1213
</suppressions>

java/lance-namespace-adapter/src/main/java/com/lancedb/lance/namespace/adapter/ClientToServerResponse.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
import com.lancedb.lance.namespace.server.springboot.model.AlterTransactionResponse;
1717
import com.lancedb.lance.namespace.server.springboot.model.CreateNamespaceResponse;
1818
import com.lancedb.lance.namespace.server.springboot.model.DeregisterTableResponse;
19+
import com.lancedb.lance.namespace.server.springboot.model.DescribeNamespaceResponse;
20+
import com.lancedb.lance.namespace.server.springboot.model.DescribeTableResponse;
21+
import com.lancedb.lance.namespace.server.springboot.model.DescribeTransactionResponse;
1922
import com.lancedb.lance.namespace.server.springboot.model.DropNamespaceResponse;
2023
import com.lancedb.lance.namespace.server.springboot.model.DropTableResponse;
21-
import com.lancedb.lance.namespace.server.springboot.model.GetNamespaceResponse;
22-
import com.lancedb.lance.namespace.server.springboot.model.GetTableResponse;
23-
import com.lancedb.lance.namespace.server.springboot.model.GetTransactionResponse;
2424
import com.lancedb.lance.namespace.server.springboot.model.ListNamespacesResponse;
2525
import com.lancedb.lance.namespace.server.springboot.model.NamespaceExistsResponse;
2626
import com.lancedb.lance.namespace.server.springboot.model.RegisterTableResponse;
@@ -29,9 +29,9 @@
2929

3030
public class ClientToServerResponse {
3131

32-
public static GetNamespaceResponse getNamespace(
33-
com.lancedb.lance.namespace.model.GetNamespaceResponse response) {
34-
GetNamespaceResponse converted = new GetNamespaceResponse();
32+
public static DescribeNamespaceResponse describeNamespace(
33+
com.lancedb.lance.namespace.model.DescribeNamespaceResponse response) {
34+
DescribeNamespaceResponse converted = new DescribeNamespaceResponse();
3535
converted.setParent(response.getParent());
3636
converted.setProperties(response.getProperties());
3737
converted.setName(response.getName());
@@ -71,9 +71,9 @@ public static NamespaceExistsResponse namespaceExists(
7171
return converted;
7272
}
7373

74-
public static GetTableResponse getTable(
75-
com.lancedb.lance.namespace.model.GetTableResponse response) {
76-
GetTableResponse converted = new GetTableResponse();
74+
public static DescribeTableResponse describeTable(
75+
com.lancedb.lance.namespace.model.DescribeTableResponse response) {
76+
DescribeTableResponse converted = new DescribeTableResponse();
7777
converted.setNamespace(response.getNamespace());
7878
converted.setName(response.getName());
7979
converted.setProperties(response.getProperties());
@@ -117,9 +117,9 @@ public static DeregisterTableResponse deregisterTable(
117117
return converted;
118118
}
119119

120-
public static GetTransactionResponse getTransaction(
121-
com.lancedb.lance.namespace.model.GetTransactionResponse response) {
122-
GetTransactionResponse converted = new GetTransactionResponse();
120+
public static DescribeTransactionResponse describeTransaction(
121+
com.lancedb.lance.namespace.model.DescribeTransactionResponse response) {
122+
DescribeTransactionResponse converted = new DescribeTransactionResponse();
123123
converted.setId(response.getId());
124124
converted.setStatus(TransactionStatus.valueOf(response.getStatus().name()));
125125
converted.setProperties(response.getProperties());

java/lance-namespace-adapter/src/main/java/com/lancedb/lance/namespace/adapter/NamespaceController.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
import com.lancedb.lance.namespace.server.springboot.api.NamespaceApi;
1818
import com.lancedb.lance.namespace.server.springboot.model.CreateNamespaceRequest;
1919
import com.lancedb.lance.namespace.server.springboot.model.CreateNamespaceResponse;
20+
import com.lancedb.lance.namespace.server.springboot.model.DescribeNamespaceRequest;
21+
import com.lancedb.lance.namespace.server.springboot.model.DescribeNamespaceResponse;
2022
import com.lancedb.lance.namespace.server.springboot.model.DropNamespaceRequest;
2123
import com.lancedb.lance.namespace.server.springboot.model.DropNamespaceResponse;
22-
import com.lancedb.lance.namespace.server.springboot.model.GetNamespaceRequest;
23-
import com.lancedb.lance.namespace.server.springboot.model.GetNamespaceResponse;
2424
import com.lancedb.lance.namespace.server.springboot.model.ListNamespacesRequest;
2525
import com.lancedb.lance.namespace.server.springboot.model.ListNamespacesResponse;
2626
import com.lancedb.lance.namespace.server.springboot.model.NamespaceExistsRequest;
@@ -29,6 +29,8 @@
2929
import org.springframework.http.ResponseEntity;
3030
import org.springframework.stereotype.Controller;
3131

32+
import java.util.Optional;
33+
3234
@Controller
3335
public class NamespaceController implements NamespaceApi {
3436

@@ -40,7 +42,7 @@ public NamespaceController(LanceNamespace delegate) {
4042

4143
@Override
4244
public ResponseEntity<CreateNamespaceResponse> createNamespace(
43-
CreateNamespaceRequest createNamespaceRequest) {
45+
String id, CreateNamespaceRequest createNamespaceRequest, Optional<String> delimiter) {
4446
return ResponseEntity.ok(
4547
ClientToServerResponse.createNamespace(
4648
delegate.createNamespace(
@@ -49,31 +51,32 @@ public ResponseEntity<CreateNamespaceResponse> createNamespace(
4951

5052
@Override
5153
public ResponseEntity<DropNamespaceResponse> dropNamespace(
52-
DropNamespaceRequest dropNamespaceRequest) {
54+
String id, DropNamespaceRequest dropNamespaceRequest, Optional<String> delimiter) {
5355
return ResponseEntity.ok(
5456
ClientToServerResponse.dropNamespace(
5557
delegate.dropNamespace(ServerToClientRequest.dropNamespace(dropNamespaceRequest))));
5658
}
5759

5860
@Override
59-
public ResponseEntity<GetNamespaceResponse> getNamespace(
60-
GetNamespaceRequest getNamespaceRequest) {
61+
public ResponseEntity<DescribeNamespaceResponse> describeNamespace(
62+
String id, DescribeNamespaceRequest describeNamespaceRequest, Optional<String> delimiter) {
6163
return ResponseEntity.ok(
62-
ClientToServerResponse.getNamespace(
63-
delegate.getNamespace(ServerToClientRequest.getNamespace(getNamespaceRequest))));
64+
ClientToServerResponse.describeNamespace(
65+
delegate.describeNamespace(
66+
ServerToClientRequest.describeNamespace(describeNamespaceRequest))));
6467
}
6568

6669
@Override
6770
public ResponseEntity<ListNamespacesResponse> listNamespaces(
68-
ListNamespacesRequest listNamespacesRequest) {
71+
String id, ListNamespacesRequest listNamespacesRequest, Optional<String> delimiter) {
6972
return ResponseEntity.ok(
7073
ClientToServerResponse.listNamespaces(
7174
delegate.listNamespaces(ServerToClientRequest.listNamespaces(listNamespacesRequest))));
7275
}
7376

7477
@Override
7578
public ResponseEntity<NamespaceExistsResponse> namespaceExists(
76-
NamespaceExistsRequest namespaceExistsRequest) {
79+
String id, NamespaceExistsRequest namespaceExistsRequest, Optional<String> delimiter) {
7780
return ResponseEntity.ok(
7881
ClientToServerResponse.namespaceExists(
7982
delegate.namespaceExists(

java/lance-namespace-adapter/src/main/java/com/lancedb/lance/namespace/adapter/ServerToClientRequest.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
import com.lancedb.lance.namespace.model.AlterTransactionUnsetProperty;
2121
import com.lancedb.lance.namespace.model.CreateNamespaceRequest;
2222
import com.lancedb.lance.namespace.model.DeregisterTableRequest;
23+
import com.lancedb.lance.namespace.model.DescribeNamespaceRequest;
24+
import com.lancedb.lance.namespace.model.DescribeTableRequest;
25+
import com.lancedb.lance.namespace.model.DescribeTransactionRequest;
2326
import com.lancedb.lance.namespace.model.DropNamespaceRequest;
2427
import com.lancedb.lance.namespace.model.DropTableRequest;
25-
import com.lancedb.lance.namespace.model.GetNamespaceRequest;
26-
import com.lancedb.lance.namespace.model.GetTableRequest;
27-
import com.lancedb.lance.namespace.model.GetTransactionRequest;
2828
import com.lancedb.lance.namespace.model.ListNamespacesRequest;
2929
import com.lancedb.lance.namespace.model.NamespaceExistsRequest;
3030
import com.lancedb.lance.namespace.model.RegisterTableRequest;
@@ -55,9 +55,9 @@ public static DropNamespaceRequest dropNamespace(
5555
return converted;
5656
}
5757

58-
public static GetNamespaceRequest getNamespace(
59-
com.lancedb.lance.namespace.server.springboot.model.GetNamespaceRequest request) {
60-
GetNamespaceRequest converted = new GetNamespaceRequest();
58+
public static DescribeNamespaceRequest describeNamespace(
59+
com.lancedb.lance.namespace.server.springboot.model.DescribeNamespaceRequest request) {
60+
DescribeNamespaceRequest converted = new DescribeNamespaceRequest();
6161
converted.setName(request.getName());
6262
return converted;
6363
}
@@ -76,9 +76,9 @@ public static NamespaceExistsRequest namespaceExists(
7676
return converted;
7777
}
7878

79-
public static GetTableRequest getTable(
80-
com.lancedb.lance.namespace.server.springboot.model.GetTableRequest request) {
81-
GetTableRequest converted = new GetTableRequest();
79+
public static DescribeTableRequest describeTable(
80+
com.lancedb.lance.namespace.server.springboot.model.DescribeTableRequest request) {
81+
DescribeTableRequest converted = new DescribeTableRequest();
8282
converted.setNamespace(request.getNamespace());
8383
converted.setName(request.getName());
8484
return converted;
@@ -117,16 +117,17 @@ public static DeregisterTableRequest deregisterTable(
117117
return converted;
118118
}
119119

120-
public static GetTransactionRequest getTransaction(
121-
com.lancedb.lance.namespace.server.springboot.model.GetTransactionRequest request) {
122-
GetTransactionRequest converted = new GetTransactionRequest();
120+
public static DescribeTransactionRequest describeTransaction(
121+
com.lancedb.lance.namespace.server.springboot.model.DescribeTransactionRequest request) {
122+
DescribeTransactionRequest converted = new DescribeTransactionRequest();
123123
converted.setId(request.getId());
124124
return converted;
125125
}
126126

127127
public static AlterTransactionRequest alterTransaction(
128128
com.lancedb.lance.namespace.server.springboot.model.AlterTransactionRequest request) {
129129
AlterTransactionRequest converted = new AlterTransactionRequest();
130+
converted.setId(request.getId());
130131
converted.setActions(
131132
request.getActions().stream()
132133
.map(ServerToClientRequest::transactionAction)

java/lance-namespace-adapter/src/main/java/com/lancedb/lance/namespace/adapter/TableController.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
import com.lancedb.lance.namespace.server.springboot.api.TableApi;
1818
import com.lancedb.lance.namespace.server.springboot.model.DeregisterTableRequest;
1919
import com.lancedb.lance.namespace.server.springboot.model.DeregisterTableResponse;
20+
import com.lancedb.lance.namespace.server.springboot.model.DescribeTableRequest;
21+
import com.lancedb.lance.namespace.server.springboot.model.DescribeTableResponse;
2022
import com.lancedb.lance.namespace.server.springboot.model.DropTableRequest;
2123
import com.lancedb.lance.namespace.server.springboot.model.DropTableResponse;
22-
import com.lancedb.lance.namespace.server.springboot.model.GetTableRequest;
23-
import com.lancedb.lance.namespace.server.springboot.model.GetTableResponse;
2424
import com.lancedb.lance.namespace.server.springboot.model.RegisterTableRequest;
2525
import com.lancedb.lance.namespace.server.springboot.model.RegisterTableResponse;
2626
import com.lancedb.lance.namespace.server.springboot.model.TableExistsRequest;
@@ -29,6 +29,8 @@
2929
import org.springframework.http.ResponseEntity;
3030
import org.springframework.stereotype.Controller;
3131

32+
import java.util.Optional;
33+
3234
@Controller
3335
public class TableController implements TableApi {
3436

@@ -39,37 +41,40 @@ public TableController(LanceNamespace delegate) {
3941
}
4042

4143
@Override
42-
public ResponseEntity<GetTableResponse> getTable(GetTableRequest getTableRequest) {
44+
public ResponseEntity<DescribeTableResponse> describeTable(
45+
String id, DescribeTableRequest describeTableRequest, Optional<String> delimiter) {
4346
return ResponseEntity.ok(
44-
ClientToServerResponse.getTable(
45-
delegate.getTable(ServerToClientRequest.getTable(getTableRequest))));
47+
ClientToServerResponse.describeTable(
48+
delegate.describeTable(ServerToClientRequest.describeTable(describeTableRequest))));
4649
}
4750

4851
@Override
4952
public ResponseEntity<RegisterTableResponse> registerTable(
50-
RegisterTableRequest registerTableRequest) {
53+
String id, RegisterTableRequest registerTableRequest, Optional<String> delimiter) {
5154
return ResponseEntity.ok(
5255
ClientToServerResponse.registerTable(
5356
delegate.registerTable(ServerToClientRequest.registerTable(registerTableRequest))));
5457
}
5558

5659
@Override
57-
public ResponseEntity<TableExistsResponse> tableExists(TableExistsRequest tableExistsRequest) {
60+
public ResponseEntity<TableExistsResponse> tableExists(
61+
String id, TableExistsRequest tableExistsRequest, Optional<String> delimiter) {
5862
return ResponseEntity.ok(
5963
ClientToServerResponse.tableExists(
6064
delegate.tableExists(ServerToClientRequest.tableExists(tableExistsRequest))));
6165
}
6266

6367
@Override
64-
public ResponseEntity<DropTableResponse> dropTable(DropTableRequest dropTableRequest) {
68+
public ResponseEntity<DropTableResponse> dropTable(
69+
String id, DropTableRequest dropTableRequest, Optional<String> delimiter) {
6570
return ResponseEntity.ok(
6671
ClientToServerResponse.dropTable(
6772
delegate.dropTable(ServerToClientRequest.dropTable(dropTableRequest))));
6873
}
6974

7075
@Override
7176
public ResponseEntity<DeregisterTableResponse> deregisterTable(
72-
DeregisterTableRequest deregisterTableRequest) {
77+
String id, DeregisterTableRequest deregisterTableRequest, Optional<String> delimiter) {
7378
return ResponseEntity.ok(
7479
ClientToServerResponse.deregisterTable(
7580
delegate.deregisterTable(

java/lance-namespace-adapter/src/main/java/com/lancedb/lance/namespace/adapter/TransactionController.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
import com.lancedb.lance.namespace.server.springboot.api.TransactionApi;
1818
import com.lancedb.lance.namespace.server.springboot.model.AlterTransactionRequest;
1919
import com.lancedb.lance.namespace.server.springboot.model.AlterTransactionResponse;
20-
import com.lancedb.lance.namespace.server.springboot.model.GetTransactionRequest;
21-
import com.lancedb.lance.namespace.server.springboot.model.GetTransactionResponse;
20+
import com.lancedb.lance.namespace.server.springboot.model.DescribeTransactionRequest;
21+
import com.lancedb.lance.namespace.server.springboot.model.DescribeTransactionResponse;
2222

2323
import org.springframework.http.ResponseEntity;
2424
import org.springframework.stereotype.Controller;
2525

26+
import java.util.Optional;
27+
2628
@Controller
2729
public class TransactionController implements TransactionApi {
2830

@@ -33,15 +35,16 @@ public TransactionController(LanceNamespace delegate) {
3335
}
3436

3537
@Override
36-
public ResponseEntity<GetTransactionResponse> getTransaction(GetTransactionRequest request) {
38+
public ResponseEntity<DescribeTransactionResponse> describeTransaction(
39+
String id, DescribeTransactionRequest request, Optional<String> delimiter) {
3740
return ResponseEntity.ok(
38-
ClientToServerResponse.getTransaction(
39-
delegate.getTransaction(ServerToClientRequest.getTransaction(request))));
41+
ClientToServerResponse.describeTransaction(
42+
delegate.describeTransaction(ServerToClientRequest.describeTransaction(request))));
4043
}
4144

4245
@Override
4346
public ResponseEntity<AlterTransactionResponse> alterTransaction(
44-
AlterTransactionRequest request) {
47+
String id, AlterTransactionRequest request, Optional<String> delimiter) {
4548
return ResponseEntity.ok(
4649
ClientToServerResponse.alterTransaction(
4750
delegate.alterTransaction(ServerToClientRequest.alterTransaction(request))));

0 commit comments

Comments
 (0)