# studiensuche
Eine der größten Datenbanken für Studienangebote in Deutschland durchsuchen. 

Die Authentifizierung funktioniert per OAuth 2 Client Credentials mit JWTs. Folgende Client-Credentials können dafür verwendet werden:

**ClientID:** 5aee2cfe-1709-48a9-951d-eb48f8f73a74

**ClientSecret:** 3309a57a-9214-40db-9abe-28b1bb30c08c

**Achtung**: der generierte Token muss bei folgenden GET-requests an https://rest.arbeitsagentur.de/infosysbub/studisu/pc/v1/studienangebote im header als 'OAuthAccessToken' inkludiert werden.


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.0.0
- Package version: 0.1.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://github.com/AndreasFischer1985/studiensuche-api](https://github.com/AndreasFischer1985/studiensuche-api)

## Requirements.

Python >= 3.6

## Installation & Usage
### pip install

```sh
pip install deutschland[studiensuche]
```

### poetry install

```sh
poetry add deutschland -E studiensuche
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

## Usage

Import the package:
```python
from deutschland import studiensuche
```

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import time
from deutschland import studiensuche
from pprint import pprint
from deutschland.studiensuche.api import default_api
from deutschland.studiensuche.model.response import Response
# Defining the host is optional and defaults to https://rest.arbeitsagentur.de/infosysbub/studisu
# See configuration.py for a list of all supported configuration parameters.
configuration = studiensuche.Configuration(
    host = "https://rest.arbeitsagentur.de/infosysbub/studisu"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure OAuth2 access token for authorization: clientCredAuth
configuration = studiensuche.Configuration(
    host = "https://rest.arbeitsagentur.de/infosysbub/studisu"
)
configuration.access_token = 'YOUR_ACCESS_TOKEN'


# Enter a context with an instance of the API client
with studiensuche.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = default_api.DefaultApi(api_client)
    sw = "Informatikberufe" # str | Suchwort (optional)
    sfa = 93683 # int | Studienfach-ID (optional)
    sfe = "94175;94350" # str | dkzIds einer Studienfeld(gruppe), idR. zwei Semikolon-getrennte Werte je Studienfeld(gruppe) (optional)
    orte = "Feucht_90537_11.224918_49.376701" # str | Ortsangabe nebst Postleitzahl und Koordinaten (optional)
    pg = 1 # int | Ergebnissseite (optional)
    uk = "Bundesweit" # str | Umkreis - Bundesweit=Bundesweit, 25=25 km, 50=50 km, 100=100 km, 150=150 km, 200=200 km. (optional)
    re = "BW" # str | Region/Bundesland - BW=Baden-Württemberg, BY=Bayern, BE=Berlin, BB=Brandenburg, HB=Bremen, HH=Hamburg, HE=Hessen, MV=Mecklenburg-Vorpommern, NI=Niedersachsen, NW=Nordrhei-Westfalen, RP=Rheinland-Pfalz, SL=Saarland, SN=Sachsen, ST=Sachsen-Anhalt, SH=Schleswig-Holstein, TH=Thüringen. Mehrere Komma-getrennte Angaben möglich. (optional)
    sfo = 1 # int | Studienform - 1=Vollzeitstudium, 2=Teilzeitstudium, 3=Wochenendveranstaltung, 4=Fernstudium, 5=Selbststudium. Mehrere Semikolon-getrennte Angaben möglich. (optional)
    st = 1 # int | Studientyp - 0=Studiengang grundständig, 1=Studiengang weiterführend. (optional)
    smo = 5 # int | Studiengangmodell - 1=ausbildungsintegrierend, 2=berufsintegrierend, 3=berufsbegleitend, 4=praxisintegrierend, 5=Duales Studium allgemein. Mehrere Semikolon-getrennte Angaben möglich. (optional)
    abg = 0 # int | Studiengangsabschlussgrad - 0=ohne Angabe, 1=Abschlussprüfung, 2=Bachelor, 3=Diplom, 4=Diplom(FH), 10=Master, 12=Staatsexamen (optional)
    hsa = 108 # int | Hochschulart - 101=Berufsakademie/Duale Hochschule, 106=FH/FAW, 107=Kunst- und Musikhochschule, 108=Universität, 111=Verwaltungshochschule, 113=Private Hochschule. 114=Hochschule eigenen Typs. Mehrere Semikolon-getrennte Angaben möglich. (optional)
    san = 26218 # int | Studienanbieter-ID (optional)
    ffst = 1 # int | Eignungstest - 1=Studiencheck, 2=OSA. Mehrere Semikolon-getrennte Angaben möglich. (optional)

    try:
        # Studiensuche
        api_response = api_instance.studiensuche(sw=sw, sfa=sfa, sfe=sfe, orte=orte, pg=pg, uk=uk, re=re, sfo=sfo, st=st, smo=smo, abg=abg, hsa=hsa, san=san, ffst=ffst)
        pprint(api_response)
    except studiensuche.ApiException as e:
        print("Exception when calling DefaultApi->studiensuche: %s\n" % e)
```

## Documentation for API Endpoints

All URIs are relative to *https://rest.arbeitsagentur.de/infosysbub/studisu*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*DefaultApi* | [**studiensuche**](docs/DefaultApi.md#studiensuche) | **GET** /pc/v1/studienangebote | Studiensuche


## Documentation For Models

 - [Response](docs/Response.md)
 - [ResponseAuswahl](docs/ResponseAuswahl.md)
 - [ResponseFacetten](docs/ResponseFacetten.md)
 - [ResponseItems](docs/ResponseItems.md)
 - [ResponseStudienangebot](docs/ResponseStudienangebot.md)
 - [ResponseStudienangebotAbschlussgrad](docs/ResponseStudienangebotAbschlussgrad.md)
 - [ResponseStudienangebotHochschulart](docs/ResponseStudienangebotHochschulart.md)
 - [ResponseStudienangebotRegion](docs/ResponseStudienangebotRegion.md)
 - [ResponseStudienangebotStudienanbieter](docs/ResponseStudienangebotStudienanbieter.md)
 - [ResponseStudienangebotStudienanbieterLogo](docs/ResponseStudienangebotStudienanbieterLogo.md)
 - [ResponseStudienangebotStudienform](docs/ResponseStudienangebotStudienform.md)
 - [ResponseStudienangebotStudienmodelle](docs/ResponseStudienangebotStudienmodelle.md)
 - [ResponseStudienangebotStudienort](docs/ResponseStudienangebotStudienort.md)
 - [ResponseStudienangebotStudienortLocation](docs/ResponseStudienangebotStudienortLocation.md)
 - [ResponseStudienangebotStudientyp](docs/ResponseStudienangebotStudientyp.md)


## Documentation For Authorization


## clientCredAuth

- **Type**: OAuth
- **Flow**: application
- **Authorization URL**: 
- **Scopes**: N/A


## Author

andreasfischer1985@web.de


## Notes for Large OpenAPI documents
If the OpenAPI document is large, imports in studiensuche.apis and studiensuche.models may fail with a
RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:

Solution 1:
Use specific imports for apis and models like:
- `from deutschland.studiensuche.api.default_api import DefaultApi`
- `from deutschland.studiensuche.model.pet import Pet`

Solution 2:
Before importing the package, adjust the maximum recursion limit as shown below:
```
import sys
sys.setrecursionlimit(1500)
from deutschland import studiensuche
from deutschland.studiensuche.apis import *
from deutschland.studiensuche.models import *
```

