<dependencies> <dependency> <groupId>com.twitter</groupId> <artifactId>finagle-core_2.13</artifactId> <version>21.6.0</version> </dependency> </dependencies> import com.twitter.finagle.Service; import com.twitter.finagle.http.Method; import com.twitter.finagle.http.Request; import com.twitter.finagle.http.Response; import com.twitter.finagle.http.Status; import com.twitter.finagle.http.path.Root; import com.twitter.util.Future; import com.twitter.util.FutureTransformer; public class SearchService extends Service<Request, Response> { private final DataService dataService; public SearchService(DataService dataService) { this.dataService = dataService; } @Override public Future<Response> apply(Request request) { if (request.method().equals(Method.Get()) && request.path().equals(Root$.MODULE$)) { String query = request.getParam("query"); Future<Response> response = dataService.search(query).flatMap(result -> { Response httpResponse = Response.apply(Status.Ok()); httpResponse.setContentString(result); return Future.value(httpResponse); }); return response; } else { return Future.value(Response.apply(Status.NotFound())); } } public static void main(String[] args) { DataService dataService = new DataService(); SearchService searchService = new SearchService(dataService); com.twitter.finagle.Http.serve(":8080", searchService); } } import com.twitter.finagle.Service; import com.twitter.finagle.http.Method; import com.twitter.finagle.http.Request; import com.twitter.finagle.http.Response; import com.twitter.finagle.http.Status; import com.twitter.util.Future; import com.twitter.util.FutureTransformer; public class DataService { public Future<String> search(String query) { return Future.value("Search Results for: " + query); } }


上一篇:
下一篇:
切换中文