Ich verwende retrofit2
in meinen Android-Apps für jeden http/Rest Anruf. Jetzt muss ich eine mit Amazon AWS API Gateway generierte API aufrufen.So rufen Sie API Gateway mit Cognito-Anmeldeinformationen über Retrofit2 auf Android auf?
Die AWS Dokumentation say I der Client-Code in der API-Gateway-Konsole werfen und verwenden Sie die Klasse ApiClientFactory
erzeugen sollte die Anforderung zu bauen:
ApiClientFactory factory = new ApiClientFactory();
// Use CognitoCachingCredentialsProvider to provide AWS credentials
// for the ApiClientFactory
AWSCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
context, // activity context
"identityPoolId", // Cognito identity pool id
Regions.US_EAST_1 // region of Cognito identity pool
};
factory.credentialsProvider(credentialsProvider);
// Create an instance of your SDK (this should come from the generated code).
final MyApiClient client = factory.build(MyApiClient.class);
// Invoke a method (e.g., 'parentPath1Get(param1,body)') exposed by your SDK.
// Here the method's return type is OriginalModel.
OriginalModel output = client.parentPath1Get(param1,body);
// You also have access to your API's models.
OriginalModel myModel = new OriginalModel();
myModel.setStreetAddress(streetAddress);
myModel.setCity(city);
myModel.setState(state);
myModel.setStreetNumber(streetNumber);
myModel.setNested(nested);
myModel.setPoBox(poBox);
Stattdessen würde Ich mag die API definieren, wie ich würde mit retrofit
: mit einer Schnittstelle, die ich schreibe, verbinde es mit RxJava, OkHttp etc ...
Meine Frage ist: Wie kann ich die Nachrüstungsanträge mit Cognito Identity Provider signieren?
Ich benutzte das AWS SDK direkt und verpackte es in Rx Observables auf eigene Faust. Die Antwort von Jack Kohn ist nicht falsch, aber es ist auch nicht wirklich eine Antwort, es zeigt nur in die richtige Richtung, wenn Sie es selbst implementieren wollen. –
Ich versuche also, Android mit API-Gateway zu verbinden, aber wie oder wo hast du die Klasse 'MyApiClient' erstellt/erstellt? – TheQ
Der Name hängt von Ihren Diensten ab. Theres ein Generator/Export von der Webkonsole für API-Gateway. Ich habe diese Methode jedoch nicht benutzt. –