Angepinnt COSA API | Dokumentation

Öffentlicher Testserver: s.city-of-sa.de
TeamSpeak 3: ts.city-of-sa.de

Um auf dem Server spielen zu können, benötigt ihr SA:MP 0.3.7.

Accounts können über das Control Panel erstellt werden. Dazu ist ein Account auf dem In Game Server notwendig. Sollte es Probleme mit dem Registrierprozess geben, erstelle bitte hier ein Thread.
  • COSA API | Dokumentation

    Hallo,

    den Keybinder Entwicklern steht zu Serverstart erneut eine API zur Verfuegung. Die API kann man ganz normal ueber HTTPS Requests ansprechen.

    API Server: api.city-of-sa.de

    1. Aufbau eines Requests Jeder Request erfordert bestimmte Header Felder. Je nachdem, ob und wie Header Felder falsch verwendet werden, antwortet der Server unterschiedlich. Man kann deshalb immer darauf vertrauen, dass Aktionen nur erfolgreich ausgefuehrt wurden, wenn der Server mit dem Status Code "200" antwortet. Eine Liste aller HTTP Status Codes findet sich hier: de.wikipedia.org/wiki/HTTP-Statuscode

    Bei Fehlern, sollte man sich immer die Antwort des Servers ansehen.

    FeldWert
    X-COSA-TokenDer generierte API Token
    Acceptapplication/json
    User-AgentName des Programms, indem ihr die API nutzt


    Ein Beispiel einer korrekten Verwendung in PHP:

    PHP-Quellcode

    1. <?php
    2. $opts = [
    3. 'http' => [
    4. 'method' => 'GET',
    5. 'header' => "X-COSA-Token: 3259340ac4c3d6def16bf38f5308b87abc3ca223eda96c86\r\n" .
    6. "Accept: application/json\r\n" .
    7. "User-Agent: Total War Keybinder v1.0"
    8. ]
    9. ];
    10. $context = stream_context_create($opts);
    11. echo file_get_contents('https://api.city-of-sa.de/users/Slider', false, $context);
    12. ?>
    Alles anzeigen


    Jeder Request, der erfolgreich war, wird geloggt. Mit "erfolgreich" werden die Requests angesehen, die korrekt gesetzte Header Felder haben und Routen aufrufen, fuer die der Token freigeschaltet wurde.

    GET /users/$USERNAME

    Diese Route liefert Informationen ueber den angegebenen User zurueck. Sollte der Nutzer des Tokens nicht dem angegebenen Usernamen entsprechen, wird ueberprueft, ob das Profil auf privat gestellt wurde. Sollte der API Token keine Berechtigung haben das Profil zu sehen, antwortet der Server mit einem 403 Forbidden Statuscode. Normalerweise koennen Administratoren Profile immer einsehen. Ueber die API entfaellt allerdings dieses Privileg.

    Diese Route erfordert den Scope: user.general

    Beispielausgabe bei Erfolg:

    PHP-Quellcode

    1. {
    2. "id":1,
    3. "username":"Slider",
    4. "adminlevel":6,
    5. "premium":false,
    6. "premium_time":null,
    7. "vip":false,
    8. "last_login":"2017-08-20T19:41:40.000Z",
    9. "last_cp_action_at":"2017-08-28T13:04:55.000Z",
    10. "online":false
    11. }
    Alles anzeigen

    GET /police-histories/$USERNAME

    Liefert die Polizeiakten eines Spielers zurueck. Es werden ohne zusaetzliche Parameterangabe die letzten 20 Eintraege angezeigt. Sollte der Benutzer, der den Token erstellt haben, nicht im FBI oder in der Polizei sein, so kann er zwar den Zugriff auf Polizeiakten ueber seinen Token genehmigen, diese aber nicht abrufen. Wenn ein Eintrag von einem FBI Agenten als "FBI Eintrag" markiert wurde, dann ist dieser nur abrufbar, wenn der Tokenersteller Mitglied des FBI ist. Die neuesten Eintraege werden immer zuerst angezeigt.

    Diese Route erfordert den Scope: police.histories

    Optionale GET Parameter (koennen an die URL angehaengt werden. Beispiel: bla/meine_route?parameter=value)

    ParameterWerteBeschreibung
    pageIntegerGibt Eintraege auf einer bestimmten Seite zurueck. (Pro Seite 20 Eintraege)


    Beispielausgabe bei Erfolg:

    PHP-Quellcode

    1. {
    2. "user":{
    3. "id":1,
    4. "username":"Slider"
    5. },
    6. "entries":[
    7. {
    8. "id":4,
    9. "cop":{
    10. "id":1,
    11. "username":"Slider",
    12. "faction":{
    13. "id":1,
    14. "name":"Federal Bureau of Investigation",
    15. "sname":"FBI"
    16. }
    17. },
    18. "text":"Eintrag nur fuer das FBI",
    19. "fbi_only":true,
    20. "created_at":"2017-08-31T13:42:24.000Z",
    21. "updated_at":"2017-08-31T13:42:24.000Z"
    22. },
    23. {
    24. "id":3,
    25. "cop":{
    26. "id":1,
    27. "username":"Slider",
    28. "faction":{
    29. "id":1,
    30. "name":"Federal Bureau of Investigation",
    31. "sname":"FBI"
    32. }
    33. },
    34. "text":"Normaler Polizeieintrag",
    35. "fbi_only":false,
    36. "created_at":"2017-08-31T13:42:16.000Z",
    37. "updated_at":"2017-08-31T13:42:16.000Z"
    38. }
    39. ]
    40. }
    Alles anzeigen