-
Notifications
You must be signed in to change notification settings - Fork 0
API
Hier werden die API Aufrufe beschrieben und dokumentiert.
- GET /route-detail
- GET /routes
- GET /sponsors
- POST /add-story
- POST /add-poi
- POST /add-rating
- GET /media
- POST /media
- GET /check-sponsoring
- POST /add-sponsor-part
Gibt alle Details zu einer Route zurück
Query Parameter:
- id: die ID der Route die zurückgegeben werden soll
Response Body:
{
"id":1,
"name":"Tolle Route",
"points":[
[7.626335620, 50.31643520],
[7.626045940, 50.31633930],
[7.625927240, 50.31630920],
[7.626092030, 50.31634150]
],
"startPoint":[10.1, 17.2],
"endPoint":[42.0, 120.3],
"distance":12.3,
"elevations":[200, 300],
"duration":72,
"difficultyAvg":3.8,
"ratingAvg":2.7,
"startCountry":"Deutschland",
"endCountry":"Spanien",
"sponsorPricePerKm":100,
"pois":[
{
"id":13,
"name":"Spannendes Monument 2",
"description":" Dieses Monument sollte niemand gesehen haben und nun folgt: Damit Ihr indess erkennt, woher dieser ganze Irrthum gekommen ist, und weshalb man die Lust anklagt und den Schmerz lobet.",
"location":[102.1, 31,2],
"media":[
{
"type":"image",
"reference":"s3_bucket_reference_thing"
},
{
"type":"audio",
"reference":"s3_bucket_reference_thing3"
}
]
},
{
"id":17,
"name":"Spannendes Monument",
"description":" Dieses Monument sollte jeder gesehen haben und nun folgt: Damit Ihr indess erkennt, woher dieser ganze Irrthum gekommen ist, und weshalb man die Lust anklagt und den Schmerz lobet.",
"location":[102.1, 31, 2],
"media":[
{
"type":"image",
"reference":"s3_bucket_reference_thing"
},
{
"type":"audio",
"reference":"s3_bucket_reference_thing3"
}
]
}
],
"stories":[
{
"id":1,
"text":"Das ist ein ganz toller dext er Story: Damit Ihr indess erkennt, woher dieser ganze Irrthum gekommen ist, und weshalb man die Lust anklagt und den Schmerz lobet, so will ich Euch Alles eröffnen und auseinander setzen, was jener Begründer der Wahrheit und gleichsam Baumeister des glücklichen Lebens selbst darüber gesagt hat.",
"title":"Tolle Story",
"media":[
{
"type":"image",
"reference":"s3_bucket_reference_thing"
},
{
"type":"video",
"reference":"s3_bucket_reference_thing2"
},
{
"type":"audio",
"reference":"s3_bucket_reference_thing3"
}
],
"point":[15.3, 74.8],
"creationDate":1511349112
}
],
"ratings":[
{
"id":1,
"userName":"HansGeorg3000",
"rating":3,
"duration":6,
"difficulty":3,
"creationDate":1511346112,
"comment":"Ganz geil, gibt aber geilere!"
},
{
"id":2,
"userName":"Alpenflitzer76",
"rating":5,
"duration":5,
"difficulty":4,
"creationDate":1511336112,
"comment":"Oberhammer! Haste nit gesehn!"
}
],
"sponsorParts":[
{
"id":1,
"sponsorId":"1001",
"sponsoredId":"2001",
"startPoint":[7.626335620, 50.31643520],
"endPoint":[7.620002200, 50.31549230],
"distance":35,
"price":3500,
"comment":"Wir möchten das Rote Kreuz für die tolle Arbeit bei der Flüchtlingshilfe danken."
},
{
"id":2,
"sponsorId":"1002",
"sponsoredId":"2002",
"startPoint":[7.616762280, 50.31397620],
"endPoint":[7.620710430, 50.31937490],
"distance":25,
"price":2500,
"comment":"Für die Kinder in Afrika."
}
]
}
Gibt eine gefilterte Liste aller Routen zurück.
Query Parameter:
- name (optional):
- startCountry(optional):
- endCountry(optional):
- minDistance(optional):
- maxDistance(optional):
- minDuration(optional):
- maxDuration(optional):
Response Body (wenn ... mitgegeben wurde):
{
}
Gibt eine Liste aller Sponsoren zurück.
Response Body:
[
{
"id": 1001,
"name": "Telekom",
"desciption": "Die Telekom ist ein führender Hersteller in Kommunikationsbereich.",
"trackColor": "#FF0000",
"imageSmall": "s3_bucket_reference_thing",
"imageLarge": "s3_bucket_reference_thing"
},
{
"id": 1002,
"name": "Amazon",
"desciption": "Amazon ist der führender Hersteller im E-Commerce!",
"trackColor": "#FFFF00",
"imageSmall": "s3_bucket_reference_thing",
"imageLarge": "s3_bucket_reference_thing"
}
]
Fügt der Route, mit der im url parameter übergebenen id, eine neue Story hinzu. Die Daten für das Story Objekt werden im Body mitgegeben. Zurückgegeben wird die für das Story Objekt erzeugte id.
Query Parameter:
- id: Die id der Route, welcher das Rating hinzugefügt werden soll
Request Body:
{
"text":"apigatewaytest",
"creationDate":1524924248,
"title":"DerTitel",
"userName":"DerAdder",
"media":[
{
"reference":"test.jpg",
"type":"image"
}
],
"point":[
10.2,
10.3
]
}
Response Body:
{
"id": 124124124
}
Fügt der Route, mit der im URL Query Parameter übergebenen id, eine neuen PoI hinzu. Die Daten für das PoI Objekt werden im Body mitgegeben. Zurückgegeben wird die für das PoI Objekt erzeugte id.
Query Parameter:
- id: Die id der Route, welcher das Rating hinzugefügt werden soll
Request Body:
{
"name":"super tolles ding api Gateway pü",
"location":[
10.10,
10.2
],
"description":"asfasf",
"media":[
{
"reference":"test2.jpg",
"type":"image"
}
]
}
Response Body:
{
"id": 124124124
}
Fügt der Route, mit der im id Query Parameter, mitgegeben id ein neues Rating hinzu. Es wird als Antwort die id der des Ratings zurückgeliefert. Zurückgegeben wird die für das Rating Objekt erzeugte id.
Query Parameter:
- id: Die id der Route, welcher das Rating hinzugefügt werden soll
Request Body:
{
"comment": "TestApiDeployment",
"creationDate": 1512238662,
"difficulty": 4,
"duration":351,
"rating":2,
"userName":"NameDesUsers"
}
Response Body:
{
"id": 124124124
}
Liefert eine Mediendatei aus dem s3 zurück.
Query Parameter:
- id: die ID der Datei bzw. der Key im s3
Es wird direkt das file inklusive MIME-Type zurückgeliefert. Dieser Request kann also im src Attribut in einem <img>
verwendet werden.
<img src='http:// [...] /api/media?id=my_file.jpg'>
Lädt eine Mediendatei zum s3 hoch.
Hier muss eine multipart/form-data Anfrage gestellt werden. Die binären Daten werden im Feld media_file
übermittelt.
Von HTML aus sähe das in etwa so aus:
<form action="http:// [...] /api/media" method="post" enctype="multipart/form-data">
<input type="file" name="media_file">
<input type="submit">
</form>
Von Angular aus kann man das so machen: https://stackoverflow.com/questions/28902727/multipart-request-with-angularjs
Response:
{
"Success":true,
"id":"3164275my_image.jpg",
"type":"image/jpeg"
}
Prüft ob ein Routenabschnitt gesponsert werden kann und gibt relevante Informationen zurück.
Query Parameter:
- id: die Routen Id
- x1: x-Koordinate des ersten Punktes
- x2: x-Koordinate des zweiten Punktes
- y1: y-Koordinate des ersten Punktes
- y2: y-Koordinate des zweiten Punktes
Response:
{
"distance": 10.13658633987749,
"price": 1013.6586339877489,
"startPoint": [
7.62578154,
50.3163205
],
"endPoint": [
7.62622614,
50.3165709
]
}
Fügt einen Sponsorpart der Route, mit der im Query Parameter übergebenen id, hinzu.
Query Parameter:
- id: die Routen Id
Request Body:
{
"comment":"Comment",
"endPoint":[
7.62622614,
50.3165709
],
"sponsoredId":2222,
"sponsorId":1111,
"startPoint":[
7.62578154,
50.3163205
]
}
Response Body (Wenn eine Kollision erkannt wurde mit einem anderen Sponsorpart):
{
"Success:": false
}
Response Body (Keine Kollision->Sponsorpart wurde der Route hinzugefügt):
{
"id": 124124124
}