Swagger-codegen: [cpprest] Beispiel für die Verwendung des cpprest-Clientbibliothekscodes?

Erstellt am 17. Apr. 2018  ·  3Kommentare  ·  Quelle: swagger-api/swagger-codegen

Beschreibung

Ich habe vor kurzem damit begonnen, swagger-codegen zu verwenden, um den cpprest-Clientcode für meine swagger-Spezifikation zu generieren. Der gesamte Code wird in meiner C++-App kompiliert und verlinkt.

Aber wie verwende ich es tatsächlich von meiner C++-Anwendung aus? Ich habe anscheinend den ApiClient und die ApiConfiguration initialisiert. Mir ist jedoch nicht klar, wie ich den getXXX()-Aufruf in mein API-Objekt einbinden soll (zB DefaultApi).

Ich habe eine ziemlich umfangreiche Internetsuche nach Quellcode durchgeführt, die die Verwendung des generierten Clientcodes demonstriert, aber ohne Erfolg. Ich habe auch festgestellt, dass es die swagger-codegen-Beispiel-Petstore-Clientbibliothek für cpprest unter tree/master/samples/client/petstore/cpprest gibt, aber gibt es dafür irgendwo ein Testkabel? Übersehe ich etwas Offensichtliches? (Sei nett, ich bin neu bei swagger/cpprest)

Swagger-Codegen-Version

2.3.1

Hilfreichster Kommentar

Nun, ich habe mir die Grundlagen dafür erarbeitet, ein triviales Beispiel:

std::shared_ptr<ApiClient> apiClient(new ApiClient);
std::shared_ptr<ApiConfiguration> apiConfig(new ApiConfiguration);
apiConfig->setBaseUrl("http://example.com/api/v1");
apiClient->setConfiguration(apiConfig);
ExampleApi api(apiClient);
api.getExample().then([=](pplx::task<std::shared_ptr<Example>> example) {
  try {
      std::cout << example.get()->getDescription() << '\n';
  } catch(const std::exception& e) {
      std::cout << "getExample() exception: " << e.what() << '\n';
  }
});

Ich würde immer noch gerne erfahren, wie der von petstore cpprest generierte Code getestet wird. Wo ist das Geschirr? Ist dort eines?

Alle 3 Kommentare

Nun, ich habe mir die Grundlagen dafür erarbeitet, ein triviales Beispiel:

std::shared_ptr<ApiClient> apiClient(new ApiClient);
std::shared_ptr<ApiConfiguration> apiConfig(new ApiConfiguration);
apiConfig->setBaseUrl("http://example.com/api/v1");
apiClient->setConfiguration(apiConfig);
ExampleApi api(apiClient);
api.getExample().then([=](pplx::task<std::shared_ptr<Example>> example) {
  try {
      std::cout << example.get()->getDescription() << '\n';
  } catch(const std::exception& e) {
      std::cout << "getExample() exception: " << e.what() << '\n';
  }
});

Ich würde immer noch gerne erfahren, wie der von petstore cpprest generierte Code getestet wird. Wo ist das Geschirr? Ist dort eines?

Hast du es geschafft das Projekt unter Linux zu verlinken? Ich versuche, dasselbe zu tun, aber ich erhalte undefinierte Verweise.

Kompiliert und erfolgreich ausgeführt.

#include "api/api/PetApi.h"
using namespace io::swagger::client::api;

int main()
{
    std::shared_ptr<ApiClient> apiClient(new ApiClient);
    std::shared_ptr<ApiConfiguration> apiConfig(new ApiConfiguration);
    apiConfig->setBaseUrl("http://petstore.swagger.io/v2");
    apiClient->setConfiguration(apiConfig);
    PetApi api(apiClient);
    api.getPetById(1).then([=](pplx::task<std::shared_ptr<Pet>> example) {
        try {
            std::cout << example.get()->getName() << '\n';
        } catch(const std::exception& e) {
            std::cout << "getExample() exception: " << e.what() << '\n';
        }
    }).wait();
}
$ ./bin/a.out
id_1
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen