UNTIS4J est une riche API Java pour le logiciel horaire / calendrier de webuntis et est inspiré de l’API Python Webuntis et d’une autre API Java Webutis. Il prend en charge presque toutes les demandes de WebUtis et est facile à utiliser. Si une méthode de demande est manquante, vous pouvez facilement implémenter la méthode vous-même avec le Session.getCustomData(...) méthode.
Pom
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.untisapi</groupId>
<artifactId>untis4j</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>
Dsl groovy
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.untisapi:RELEASE'
}
Kotlin dsl
repositories {
maven { url='https://jitpack.io' }
}
dependencies {
implementation ("com.github.untisapi:RELEASE")
}
Note: Pour Session.login(...) Méthode Un serveur et un nom d’école sont requis. Pour les gagner, vous devez vous rendre sur webuntis.com, saisir votre école et le choisir. Ensuite, vous serez redirigé vers la page de connexion UNTIS. L’URL de cette page est, par exemple https://example.webuntis.com/WebUntis/?school=myschool#/basic/main. Le serveur est le début de l’URL https://example.webuntis.com Et le nom de l’école est le paramètre après le ?school=dans ce cas c’est myschool
public class Main {
public static void main(String[] args) {
try {
Session session = Session.login("your webuntis username", "your webuntis password", "https://example.webuntis.com", "myschool"); // create a new webuntis session
// get the timetable and print every lesson
Timetable timetable = session.getTimetableFromClassId(LocalDate.now(), LocalDate.now(), session.getInfos().getClassId());
for (int i = 0; i < timetable.size(); i++) {
System.out.println("Lesson " + (i+1) + ": " + timetable.get(i).getSubjects().toString());
}
// logout
session.logout();
} catch (LoginException e) {
// this exception get thrown if something went wrong with Session.login
System.out.println("Failed to login: " + e.getMessage());
} catch (IOException e) {
// if an error appears this get thrown
e.printStackTrace();
}
}
}
Trouver / rechercher une classe spécifique
public class Main {
public static void main(String[] args){
try {
Session session = Session.login("your webuntis username", "your webuntis password", "https://example.webuntis.com", "myschool"); // creates a new webuntis session
Classes classes = session.getClasses();
// get a class by its id
// findBy(...) methods only returns one result
System.out.println(classes.findById(1234));
// this prints all classes which contains 's' in their name.
// searchBy(...) methods can return multiple results / matches
for (Classes.ClassObject classObject : classes.searchByName("s")) {
System.out.println(classObject);
}
// logout
session.logout();
} catch (LoginException e) {
// this exception get thrown if something went wrong with Session.login
System.out.println("Failed to login: " + e.getMessage());
} catch (IOException e) {
// if an error appears this get thrown
e.printStackTrace();
}
}
}
public class Main {
public static void main(String[] args) {
try {
Session session = Session.login("your webuntis username", "your webuntis password", "webuntis.grupet.at", "demo_inf");
// creates a new webuntis session
Response response = session.getCustomData("getAMethodThatIsNotImplemented");
// requests the custom method
if (response.isError()) {
// you can easily check if the response contains an error
return;
} else {
// get the response...
JSONObject responseObject = response.getResponse();
// ...and read it
JSONObject result = responseObject.getJSONObject("result");
System.out.println(result.toString());
}
// logout
session.logout();
} catch (LoginException e) {
// this exception get thrown if something went wrong with Session.login
System.out.println("Failed to login: " + e.getMessage());
} catch (IOException e) {
// if an error appears this get thrown
e.printStackTrace();
}
}
}
La mise en cache permet d’utiliser les réponses de la demande enregistrées. Les avantages de la mise en cache sont la réponse évidemment plus rapide lorsque les mêmes choses sont demandées, que le serveur n’a pas à envoyer autant de données et en cas de perte de perte sur Internet. La mise en cache est activée par défaut, mais peut utiliser Session.useCache(...) pour l’activer / le désactiver.
Ce projet est autorisé en vertu de la licence publique générale de GNU Leder V3.0 (LGPL-3.0) – Voir le fichier de licence pour plus de détails.



