$ pip install fenixedu
- Import python sdk
import fenixedu
-
Clone this repository or just download fenixedu.sample.ini file
-
Copy file fenixedu.sample.ini to a new one named 'fenixedu.ini' or with another name if you want
$ cp fenixedu.sample.ini FILENAME
-
Edit the file according to your application info
-
Instantiate a configuration object using the file
config = fenixedu.FenixEduConfiguration.fromConfigFile('FILENAME')- If no FILENAME is provided it will use 'fenixedu.ini'
config = fenixedu.FenixEduConfiguration('CLIENT_ID', 'REDIRECT_URI', 'CLIENT_SECRET', 'BASE_URL')- Instantiate an API client object in your source code
client = fenixedu.FenixEduClient(config)- Get the authentication URL
url = client.get_authentication_url()-
Redirect your user to that URL
-
If the user authorizes your application he will be redirected to an URL like this:
redirect_uri?code=CODE
- Get the code parameter in URL and get an object with the user details:
user = client.get_user_by_code('CODE')-
It will request an access token and returns no errors if everything is fine
-
This user object now can be used to make requests that belong to the private scope like this one:
person = client.get_person(user)degrees = client.get_degrees()spaces = client.get_spaces()person = client.get_person(user)classes = client.get_person_calendar_classes(user)payments = client.get_person_payments(user)-
'[x]' - Optional parameters
-
All endpoints in FenixEdu API have a method in this SDK
-
Mapping between FenixAPISingleton api methods and original API endpoints
-
API endpoint -> SDK FenixAPISingleton Methods
-
GET /about ->
get_about -
GET /academicterms ->
get_academic_terms -
GET /courses/{id} ->
get_course(id) -
GET /courses/{id}/evaluations ->
get_course_evaluations(id) -
GET /courses/{id}/groups ->
get_course_groups(id) -
GET /courses/{id}/schedule ->
get_course_schedule(id) -
GET /courses/{id}/students ->
get_course_students(id) -
GET /degrees ->
get_degrees([year]) -
GET /degrees/{id} ->
get_degree(id, [year]) -
GET /degrees/{id}/courses ->
get_degree_courses(id, [year]) -
GET /spaces ->
get_spaces() -
GET /spaces/{id} ->
get_space(id,[day])
-
GET /person ->
get_person(user) -
GET /person/calendar/classes ->
get_person_classes_calendar(user) -
GET /person/calendar/evaluations ->
get_person_evaluations_calendar(user) -
GET /person/courses ->
get_person_courses(user, [academicTerm]) -
GET /person/evaluations ->
get_person_evaluations(user) -
GET /person/payments ->
get_person_payments(user) -
PUT /person/evaluations/{id} ->
enrol_in_evaluation(user, id, [enrol_action]) -
GET /person/curriculum ->
get_person_curriculum(user)