Skip to content

Instantly share code, notes, and snippets.

@anuchandy
Created February 9, 2021 21:47
Show Gist options
  • Save anuchandy/5aa3c0f3bc164cfc6137b397c0a775ea to your computer and use it in GitHub Desktop.
Save anuchandy/5aa3c0f3bc164cfc6137b397c0a775ea to your computer and use it in GitHub Desktop.

azure-core-rest and core modules:

azure-core-modules

azure-core azure-core-types

Proxy private interface in partner SDK:

public class AcsApiClient {


  // -----------------------------------------------------------
  private interface  AcsApiService {

      @Get("something/{name}")
      void getSomething(
          @com.azure.android.core.rest.annotation.PathParam("name") String name, 
          azure.core.util.Context context, 
          azure.core.util.CancellationToken cancellationToken,
          azure.core.rest.Callback<[R]> callback);

  }
  // -----------------------------------------------------------

  ...
}
[R]
#n [R] Type
1 azure.core.rest.Response<T> interface
2 azure.core.rest.ResponseBase<H, T> class
3 azure.core.rest.PagedResponse<T> interface
4 azure.core.rest.PagedResponseBase<H, T> class

azure core modules in partner SDK:

azure-core-chat

Retrofuture adaption in partner SDK:

import java9.util.concurrent;

public class AcsApiClient {
  private final AcsApiService service;
  
  // -----------------------------------------------------------
  private interface AcsApiService {
      @Get("something/{name}")
      void getSomething(
          @com.azure.android.core.rest.annotation.PathParam("name") String name, 
          azure.core.util.Context context, 
          azure.core.util.CancellationToken cancellationToken,
          azure.core.rest.Callback<Response<Foo> callback);

  }  
  // -----------------------------------------------------------
  public CompletableFuture<Response<Foo>> getSomethingWithResponse(
     String name, 
     azure.core.util.Context context, 
     azure.core.util.CancellationToken cancellationToken) {
     
        final CompletableFuture<Response<Foo>> cf = new CompletableFuture<>();

        this.service.getSomething(name, context, cancellationToken,
           new Callback<Response<Foo>>() {
               @Override
               public void onSuccess(Response<Foo>> response) {
                   cf.complete(response);
               }

               @Override
               public void onError(Throwable error) {
                   cf.completeExceptionally(error);
               }
           });

        return cf;
  }
  public CompletableFuture<Foo> getSomething(
     String name, 
     azure.core.util.Context context, 
     azure.core.util.CancellationToken cancellationToken) {
  
        CompletableFuture<Response<Foo>> cfResponse = this.getSomethingWithResponse(name, 
            context, 
            cancellationToken);
        CompletableFuture<Foo> cf = cfResponse.thenApply(response -> response.getValue());
        return cf;
  }
}                                   

azure-core-rest public types:

Annotations:

com.azure.android.core.rest.annotation.*

Callback:

com.azure.android.core.rest.Callback<T>

Responses:

com.azure.android.core.rest.Response<T>
com.azure.android.core.rest.ResponseBase<H, T>
com.azure.android.core.rest.SimpleResponse<T>
com.azure.android.core.rest.StreamResponse

Page responses:

com.azure.android.core.rest.Page<T>
com.azure.android.core.rest.PagedResponse<T>
com.azure.android.core.rest.PagedResponseBase<H, T>

RestProxy:

com.azure.android.core.rest.RestProxy

public class RestProxy {
    public static <A> A create(Class<A> swaggerInterface, 
        com.azure.core.http.HttpPipeline httpPipeline,
        com.azure.core.serde.SerdeAdapter serdeAdapter);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment