====== Passanger Capacity Interchange Format ======
===== Aufbau =====
Die **erste Zeile** der Ausgabe enthält Versions- und Statusangaben ähnlich denen im HTTP-Protokoll. Die Zeile beginnt stets mit den vier Großbuchstaben "PCIF", gefolgt von einem Schrägstrich "/" und einer Versionsnummer "x.y". Nach einem Leerzeichen folgt ein dreistelliger Statuscode (siehe unten) und nach einem weiteren Leerzeichen eine kurze Beschreibung des Status. //Ein Parser sollte unbedingt prüfen, ob die erste Zeile mit "PCIF" beginnt, um zu vermeiden, dass etwaige Fehlerseiten des Servers geparsed werden. Es ist zudem sinnvoll die Versionsnummer auszuwerten, um Probleme beim Parsen der Ausgabe zu vermeiden.//
In den **restlichen Zeilen** folgen die Informationen zu den einzelnen Airlines, wobei jede Zeile Informationen zu genau einer Airline liefert. Abhängig von der Versionsnummer unterscheidet sich der Aufbau der Zeilen voneinander.
==== Version 1.0 ====
Version 1.0 nutzt als Trennzeichen der Werte das Leerzeichen. Die übermittelten Werte sind Airline-Code, Airline-Mitgliedsstatus, Passagierkapazität, Frachtkapazität. Dies entspricht dem Request-Code "cspf" der Version 2.0.
==== Version 1.1 ====
Version 1.1 nutzt als Trennzeichen der Werte das Leerzeichen. Die übermittelten Werte sind Airline-Code, Airline-ID, Airline-Status, Passagierkapazität, Frachtkapazität. Dies entspricht dem Request-Code "caspf" der Version 2.0. Damit das Interface die Daten gemäß Version 1.1 zur Verfügung stellt, muss als URL-Parameter "v=1" angehängt werden.
==== Version 2.0 ====
Version 2.0 nutzt als Trennzeichen der Werte das Semikolon. Die übermittelten Wert sind frei wählbar und werden durch den Request-Code festgelegt, der der URL angehängt wird (bpsw. "req=caspf"). Für die Bedeutung der einzelnen Codezeichen siehe Anhang. Damit das Interface die Daten gemäß Version 2.0 zur Verfügung stellt, muss als URL-Parameter "v=2" angehängt werden.
===== Beispielausgaben =====
==== Version 1.0 ====
PCIF/1.0 200 OK
7S 0 10478 1452
ABS 2 6890 120
AUW 0 6244 874
==== Version 1.1 ====
PCIF/1.1 200 OK
7S 1430 0 10478 1452
ABS 12106 2 6890 120
AUW 3139 0 6244 874
===== Anhang =====
==== Request-Code-Zeichen ====
^ Zeichen ^ Beschreibung ^
| a | ID der Airline (gleich der bei AirlineSim) |
| A | Name der Airline |
| c | Code der Airline |
| f | Frachtkapazitäten der Airline |
| h | IATA-Code des Hubflughafens der Airline |
| H | ICAO-Code des Hubflughafens der Airline (soweit bekannt) |
| o | ID des Besitzers der Airline |
| O | Benutzername des Besitzers der Airline |
| p | Passagierkapazitäten der Airline |
| r | ID des Hubflughafens der Airline (gleich der bei AirlineSim) |
| R | Bezeichnung des Hubflughafens der Airline |
| s | ID des Mitgliedsstatus |
| S | Bezeichnung des Mitgliedsstatus |
| u | Letztes Update der Kapazitäten (Unix-Zeitstempel) |
==== Airline-Status-Codes ====
^ Code ^ Beschreibung ^
| 0 | nice.SKIES Member |
| 1 | nice.SKIES Associated Member |
| 2 | nice.SKIES Regional Member |
| 4 | nice.SKIES Cargo Partner (//reserviert//) |
| 5 | nice.SKIES International Partner |
| 7 | N-Plane Member |
| 64 | NewGen Cargo Member |
| 128 | Associated Member (//neue ID//)|
| 192 | Kein Status |
==== PCIF-Status-Codes ====
Die Statuscodes ähneln denen des HTTP-Protokolls. Definiert sind folgende Codes:
^ Code ^ Beschreibung ^
| 200 OK | Die Anfrage wurde erfolgreich bearbeitet und ihr Ergebnis folgt in den nächsten Zeilen. |
| 203 NO REAL DATA | Die Anfrage wurde erfolgreich bearbeitet, es werden aber Zufallsdaten zum Testen zurückgesendet (muss angefragt werden). |
| 204 NO CONTENT | Die Anfrage wurde erfolgreich bearbeitet, aber die Liste ist leer, da keine Airline ihre Kapazitäten bekannt gegeben hat. |
| 400 BAD REQUEST | Die Anfrage war ungültig, bspw. weil wichtige Parameter fehlten. |
| 403 FORBIDDEN | Der Hash des Authentfizierungsschlüssels war ungültig. |
| 500 INTERNAL SERVER ERROR | Die Anfrage kann aufgrund eines internen Serverproblems nicht beantwortet werden. |
| 503 SERVICE UNAVAILABLE | Die Anfrage kann momentan nicht beantwortet werden, da bspw. Wartungsarbeiten stattfinden. |
| 505 VERSION NOT SUPPORTED | Die angefragte PCIF-Version steht nicht zur Verfügung. |