UNTISAPI / UNTIS4J: Une API Java pour Webuntis

Sommaire :

Statut de flux de travail GitHub
Statut de flux de travail GitHub
Statut de déploiement jitpack
Github toutes les sorties


⚠️ Cette bibliothèque recherche un nouveau mainteneur!


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.

À LIRE  Le MHRA britannique approuve l'étude de la phase 2A pour l'ANXV pour la rétinopathie diabétique

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.

Vous voulez suivre notre blog ?

Recevez nos conseils les plus précieux dans votre boîte de réception, une fois par mois !

Articles associés

Gastronomie