Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

destatis - Ergebnis?! #117

Open
jhums opened this issue Jul 27, 2023 · 6 comments
Open

destatis - Ergebnis?! #117

jhums opened this issue Jul 27, 2023 · 6 comments

Comments

@jhums
Copy link

jhums commented Jul 27, 2023

`
import time
from deutschland import destatis
from pprint import pprint
from deutschland.destatis.api import default_api

with destatis.ApiClient() as api_client:
# Create an instance of the API class
api_instance = default_api.DefaultApi(api_client)
username = "xxx"
password = "xxx"
name = "45341-0102"
area = "all"
compress = "false"
transpose = "false"
startyear = "startyear_example"
endyear = "endyear_example"
timeslices = "timeslices_example"
regionalvariable = "regionalvariable_example"
regionalkey = "regionalkey_example"
classifyingvariable1 = "classifyingvariable1_example"
classifyingkey1 = "classifyingkey1_example"
classifyingvariable2 = "classifyingvariable2_example"
classifyingkey2 = "classifyingkey2_example"
classifyingvariable3 = "classifyingvariable3_example"
classifyingkey3 = "classifyingkey3_example"
job = "false"
stand = "01.01.1970 01:00"
language = "de"
format = "csv"

try:
    api_instance.table(username=username, password=password, name=name, area=area, compress=compress, transpose=transpose, startyear=startyear, endyear=endyear, timeslices=timeslices, regionalvariable=regionalvariable, regionalkey=regionalkey, classifyingvariable1=classifyingvariable1, classifyingkey1=classifyingkey1, classifyingvariable2=classifyingvariable2, classifyingkey2=classifyingkey2, classifyingvariable3=classifyingvariable3, classifyingkey3=classifyingkey3, job=job, stand=stand, language=language)
except destatis.ApiException as e:
    print("Exception:")
    print(e)

`
Ok... analog zum Standard konfiguriert - Abfrage geht fehlerfrei durch.

Wahrscheinliche eine dumme Frage, aber wie komme ich an das Ergebnis? :)

@wirthual
Copy link
Member

wirthual commented Aug 3, 2023

Hi,

wenn der API call sollte ein Result object zurueck geben, also so:

res =  api_instance.table(username=username, password=password, name=name, area=area, compress=compress, transpose=transpose, startyear=startyear, endyear=endyear, timeslices=timeslices, regionalvariable=regionalvariable, regionalkey=regionalkey, classifyingvariable1=classifyingvariable1, classifyingkey1=classifyingkey1, classifyingvariable2=classifyingvariable2, classifyingkey2=classifyingkey2, classifyingvariable3=classifyingvariable3, classifyingkey3=classifyingkey3, job=job, stand=stand, language=language)

print(res)

Allerdings benoetigt man ein Username und ein Passwort soviel ich weis.

@PickleRiiiick
Copy link

Ich bekomme nur 'None' als Ergebnis. Ein funktionierendes Beispiel wäre womöglich hilfreich.

@NiklasPrahl
Copy link

@wirthual Ich habe dieses Problem ebenfalls mit allen Schnittstellen, die ich ausprobiert habe, obwohl meine Login-Daten über curl einwandfrei funktionieren.

@wirthual
Copy link
Member

wirthual commented Nov 7, 2024

Hi @NiklasPrahl,
kannst du den curl command und dein code teilen?

@NiklasPrahl
Copy link

Hi @wirthual,
gerne!

Anfrage:
curl -X GET "https://www-genesis.destatis.de/genesisWS/rest/2020/helloworld/logincheck?username=MEINUSERNAME&password=MEINPASSWORT&language=de"

Aktuelle Beispielantwort:
{"Status":"Sie wurden erfolgreich an- und abgemeldet! Bei mehr als 3 parallelen Requests wurden länger als 15 Minuten laufende Requests beendet.","Username":"MEINUSERNAME"}%

Das scheint also zu funktionieren und in der Regel klappt es auch mit get-requests in Kombination mit JSON-Files.

Hier nun einer der Codeblöcke, die ich testweise gemäß der Dokumentation übernommen und angepasst habe:

import time
from deutschland import destatis
from deutschland.destatis.api import default_api
from pprint import pprint
# Defining the host is optional and defaults to https://www-genesis.destatis.de/genesisWS/rest/2020
# See configuration.py for a list of all supported configuration parameters.
configuration = destatis.Configuration(
    host = "https://www-genesis.destatis.de/genesisWS/rest/2020"
)


# Enter a context with an instance of the API client
with destatis.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = default_api.DefaultApi(api_client)
    username = "MEINUSERNAME" # str 
    password = "MEINPASSWORT" # str 
    language = "de" # str |  (optional) if omitted the server will use the default value of "de"

    # example passing only required values which don't have defaults set
    # and optional values
    try:
       print(api_instance.logincheck(username=username, password=password, language=language))
    except destatis.ApiException as e:
        print("Exception when calling DefaultApi->logincheck: %s\n" % e)

Die Rückgabe ist immer "None", egal ob ich find, tablefile oder andere Funktionen nutze. Die optionalen Variablen habe ich auch alle testweise einmal gesetzt und meine Beispiele mit JSON und curl gegengeprüft (dort funktioniert das dann wie erwartet). Auch den Wert vorher in eine Variable zu legen bringt nichts. Ich habe mich unmittelbar an der Dokumentation orientiert, bzw. zum testen die Syntax schlussendlich kopiert und nur minimal mit den nötigen Werten angepasst und es klappt trotzdem nicht. Es lädt eine Weile und dann wird wieder "None" zurückgegeben.

@wirthual
Copy link
Member

Hi,
danke fuer die detailiierte Beschreibung. Ich kann das beschriebene Verhalten reproduzieren.

Der code is auto generiert von der Beschreibung. Der openapi generator den wir benutzen ist version 6, es gibt jedoch eine neue Major version 7. Es waere interesant zu sehen if die neue version des generierten Codes hier besser funktioniert.

https://github.com/OpenAPITools/openapi-generator

Ansonsten gibt es hier auch ein Python based generator den es sich lohnt auszuprobieren:
https://github.com/openapi-generators/openapi-python-client

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants