Public Api: Dokumentation: Unterschied zwischen den Versionen

Aus co*pilot Wiki
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 17: Zeile 17:
 
=== integer ===
 
=== integer ===
 
Beispiel: <code>?page.page=2&page.size=30</code>.
 
Beispiel: <code>?page.page=2&page.size=30</code>.
  +
  +
=== float ===
  +
Beispiel: <code>3.14</code>.
   
 
=== localdate ===
 
=== localdate ===
Zeile 23: Zeile 26:
 
=== localtime ===
 
=== localtime ===
 
Zeitangaben erfolgen im ISO 8601 Format. Beispiel: <code>23:59:59</code>.
 
Zeitangaben erfolgen im ISO 8601 Format. Beispiel: <code>23:59:59</code>.
  +
  +
=== locale ===
  +
Angabe des Ländercodes im ISO 3166-1 alpha-2 Format. Beispiel: <code>DE</code>.
   
 
=== Arrays ===
 
=== Arrays ===
Zeile 40: Zeile 46:
 
Bei der Verwendung von mehreren Webseiten können sog. Channels verwendet werden, um z.B. Künstler und Events auf mehrere Webseiten verteilt anzuzeigen.
 
Bei der Verwendung von mehreren Webseiten können sog. Channels verwendet werden, um z.B. Künstler und Events auf mehrere Webseiten verteilt anzuzeigen.
   
= API =
+
== Objekttypen ==
   
  +
=== Address ===
== Assets / Dateianhänge ==
 
  +
{
  +
street: string
  +
addon: string
  +
postbox: string
  +
zipcode: string
  +
city: string
  +
region: string
  +
country: string
  +
latitude: float
  +
longitude: float
  +
}
   
=== Basis URL ===
+
=== Asset ===
<code><nowiki>https://copilot-office.de/$KUNDE/public/api/assets</nowiki></code>
 
 
=== By ID ===
 
<code><nowiki>https://copilot-office.de/$KUNDE/public/api/assets/{ASSET_ID}</nowiki></code>
 
 
=== Download ===
 
<code><nowiki>https://copilot-office.de/$KUNDE/public/api/assets/{ASSET_ID}/download</nowiki></code>
 
 
=== Response Object ===
 
 
{
 
{
 
id: string
 
id: string
Zeile 63: Zeile 71:
 
width: integer
 
width: integer
 
height: integer
 
height: integer
youtube: string
 
 
downloadUrl: string
 
downloadUrl: string
 
tags: { tagName: string }[]
 
tags: { tagName: string }[]
 
}
 
}
  +
  +
= API =
  +
  +
== Assets / Dateianhänge ==
  +
  +
=== Basis URL ===
  +
<code><nowiki>https://copilot-office.de/$KUNDE/public/api/assets</nowiki></code>
  +
  +
=== By ID ===
  +
<code><nowiki>https://copilot-office.de/$KUNDE/public/api/assets/{ASSET_ID}</nowiki></code>
  +
  +
=== Download ===
  +
<code><nowiki>https://copilot-office.de/$KUNDE/public/api/assets/{ASSET_ID}/download</nowiki></code>
   
 
== Events ==
 
== Events ==
Zeile 126: Zeile 146:
 
{
 
{
 
id: string
 
id: string
title: Map<string, string>
+
title: Map<locale, string>
subtitle: Map<string, string>
+
subtitle: Map<locale, string>
state: 'CONFIRMED' | 'CANCELLED'
+
state: 'CONFIRMED' | 'CANCELLED' | 'RESCHEDULED'
 
type: 'CLOSED' | 'RADIO' | 'TV' | 'STREAM'
 
type: 'CLOSED' | 'RADIO' | 'TV' | 'STREAM'
 
broadcastType: 'LIVE' | 'RECORDING'
 
broadcastType: 'LIVE' | 'RECORDING'
Zeile 135: Zeile 155:
 
youtube: string
 
youtube: string
 
miscLinks: { url: string }[]
 
miscLinks: { url: string }[]
genres: any[]
+
genres: Genre[]
 
description: string
 
description: string
 
hearingAssistance: boolean
 
hearingAssistance: boolean
Zeile 142: Zeile 162:
 
entrance: localtime
 
entrance: localtime
 
start: localtime
 
start: localtime
cast: any[]
+
cast: Cast[]
venue: any
+
venue: Venue
tickets: any
+
tickets: Tickets
tour: any
+
tour: Tour
 
remark: string
 
remark: string
 
publication: { startAt: instant }
 
publication: { startAt: instant }
  +
}
  +
  +
=== Cast ===
  +
{
  +
mainAct: boolean
  +
artist: {
  +
id: string
  +
stageName: string
  +
mainact: boolean
  +
bookerSimple: string
  +
web: string
  +
facebook: string
  +
myspace: string
  +
youtube: string
  +
twitter: string
  +
instagram: string
  +
snapchat: string
  +
shortBio: string
  +
longBio: string
  +
assets: Asset[]
  +
requiresSeating: boolean
  +
}
  +
}
  +
  +
=== Genre ===
  +
{
  +
id: string
  +
name: Map<locale, string>
  +
}
  +
  +
=== Tickets ===
  +
{
  +
soldOut: boolean
  +
preSale: {
  +
notApplicable: boolean
  +
info: string
  +
startAt: instant
  +
endAt: instant
  +
systems: { name: string, url: string, phone: string, info: string, startAt: instant, endAt: instant }[]
  +
}
  +
boxOffice: { notApplicable: boolean }
  +
}
  +
  +
=== Tour ===
  +
{
  +
id: string
  +
title: string
  +
description: string
  +
assets: Asset[]
  +
}
  +
  +
=== Venue ===
  +
{
  +
id: string
  +
name: string
  +
description: string
  +
web: string
  +
address: Address
  +
assets: Asset[]
  +
rooms: Room[]
 
}
 
}
   
Zeile 200: Zeile 280:
 
shortBio: string
 
shortBio: string
 
longBio: string
 
longBio: string
assets: any[]
+
assets: Asset[]
 
}
 
}
   
Zeile 271: Zeile 351:
 
title: string
 
title: string
 
description: string
 
description: string
assets: any[]
+
assets: Asset[]
 
}
 
}
   
Zeile 316: Zeile 396:
 
description: string
 
description: string
 
web: string
 
web: string
address: any
+
address: Address
rooms: any[]
+
rooms: Room[]
assets: any[]
+
assets: Asset[]
  +
}
  +
=== Room ===
  +
{
  +
id: string
  +
name: string
 
}
 
}

Aktuelle Version vom 28. Juli 2020, 15:44 Uhr

Basics

URL

Die API ist unter https://copilot-office.de/$KUNDE/public/api zu erreichen.

Content-Type

Sämtliche Daten werden im JSON Format ausgegeben.

Datentypen

string

Strings werden als Strings interpretiert. Beispiel: ?channel=A.

boolean

Es werden die Strings true und false unterstützt. Beispiel: ?highlight=false.

integer

Beispiel: ?page.page=2&page.size=30.

float

Beispiel: 3.14.

localdate

Datumsangaben erfolgen im ISO 8601 Format. Beispiel: ?from=2019-06-13.

localtime

Zeitangaben erfolgen im ISO 8601 Format. Beispiel: 23:59:59.

locale

Angabe des Ländercodes im ISO 3166-1 alpha-2 Format. Beispiel: DE.

Arrays

Bei der Verwendung von Arrays kann der Query Parameter mehrfach angegeben werden. Beispiel: ?channel=A&channel=B.

Pagination

Pagination funktioniert bei allen Endpunkten mit den Query Parametern page.page und page.size. Beispiel: https://copilot-office.de/$KUNDE/public/api/artists?page.page=2&page.size=30

Response

{
  "content": [ ELEMENT1, ELEMENT2, ELEMENT3, ... ],
  "totalElements":9386,
  "totalPages":313
}

Channel

Bei der Verwendung von mehreren Webseiten können sog. Channels verwendet werden, um z.B. Künstler und Events auf mehrere Webseiten verteilt anzuzeigen.

Objekttypen

Address

{
  street: string
  addon: string
  postbox: string
  zipcode: string
  city: string
  region: string
  country: string
  latitude: float
  longitude: float
}

Asset

{
  id: string
  filename: string
  mimeType: string
  size: integer
  description: string
  copyright: string
  width: integer
  height: integer
  downloadUrl: string
  tags: { tagName: string }[]
}

API

Assets / Dateianhänge

Basis URL

https://copilot-office.de/$KUNDE/public/api/assets

By ID

https://copilot-office.de/$KUNDE/public/api/assets/{ASSET_ID}

Download

https://copilot-office.de/$KUNDE/public/api/assets/{ASSET_ID}/download

Events

Basis URL

https://copilot-office.de/$KUNDE/public/api/events

Liste

https://copilot-office.de/$KUNDE/public/api/events/

Query Parameter
Parameter Typ Optional Default Beschreibung
page.page integer ja 0 Seitennummer
page.size integer ja 30 Seitengröße
from localdate ja Eventdatum von
to localdate ja Eventdatum bis
channel string[] ja Channel
highlight boolean ja Highlight

By ID

https://copilot-office.de/$KUNDE/public/api/events/{EVENT_ID}

Response Object

{
  id: string
  title: Map<locale, string>
  subtitle: Map<locale, string>
  state: 'CONFIRMED' | 'CANCELLED' | 'RESCHEDULED'
  type: 'CLOSED' | 'RADIO' | 'TV' | 'STREAM'
  broadcastType: 'LIVE' | 'RECORDING'
  broadcastStation: string
  facebook: string
  youtube: string
  miscLinks: { url: string }[]
  genres: Genre[]
  description: string
  hearingAssistance: boolean
  highlight: boolean
  dateOfEvent: localdate
  entrance: localtime
  start: localtime
  cast: Cast[]
  venue: Venue
  tickets: Tickets
  tour: Tour
  remark: string
  publication: { startAt: instant }
}

Cast

{
  mainAct: boolean
  artist: {
    id: string
    stageName: string
    mainact: boolean
    bookerSimple: string
    web: string
    facebook: string
    myspace: string
    youtube: string
    twitter: string
    instagram: string
    snapchat: string
    shortBio: string
    longBio: string
    assets: Asset[]
    requiresSeating: boolean
  }
}

Genre

{
  id: string
  name: Map<locale, string>
}

Tickets

{
  soldOut: boolean
  preSale: {
    notApplicable: boolean
    info: string
    startAt: instant
    endAt: instant
    systems: { name: string, url: string, phone: string, info: string, startAt: instant, endAt: instant }[]
  }
  boxOffice: { notApplicable: boolean }
}

Tour

{
  id: string
  title: string
  description: string
  assets: Asset[]
}

Venue

{
  id: string
  name: string
  description: string
  web: string
  address: Address
  assets: Asset[]
  rooms: Room[]
}

Künstler

Basis URL

https://copilot-office.de/$KUNDE/public/api/artists

Liste

https://copilot-office.de/$KUNDE/public/api/artists/search

Query Parameter
Parameter Typ Optional Default Beschreibung
page.page integer ja 0 Seitennummer
page.size integer ja 30 Seitengröße
channel string[] ja Channel

By ID

https://copilot-office.de/$KUNDE/public/api/artists/{ARTIST_ID}

Response Object

{
  id: string
  stageName: string
  web: string
  facebook: string
  myspace: string
  youtube: string
  twitter: string
  instagram: string
  snapchat: string
  shortBio: string
  longBio: string
  assets: Asset[]
}

Events

https://copilot-office.de/$KUNDE/public/api/artists/{ARTIST_ID}/events

Query Parameter
Parameter Typ Optional Default Beschreibung
page.page integer ja 0 Seitennummer
page.size integer ja 30 Seitengröße
channel string[] ja Channel

Tour

Basis URL

https://copilot-office.de/$KUNDE/public/api/tours

Liste

https://copilot-office.de/$KUNDE/public/api/tours

Query Parameter
Parameter Typ Optional Default Beschreibung
page.page integer ja 0 Seitennummer
page.size integer ja 30 Seitengröße
channel string[] ja Channel

Response Object

{
  id: string
  title: string
  description: string
  assets: Asset[]
}

Venue

Basis URL

https://copilot-office.de/$KUNDE/public/api/venues

Liste

https://copilot-office.de/$KUNDE/public/api/venues

Query Parameter
Parameter Typ Optional Default Beschreibung
page.page integer ja 0 Seitennummer
page.size integer ja 30 Seitengröße
channel string[] ja Channel

By ID

https://copilot-office.de/$KUNDE/public/api/venues/{VENUE_ID}

Response Object

{
  id: string
  title: string
  description: string
  web: string
  address: Address
  rooms: Room[]
  assets: Asset[]
}

Room

{
  id: string
  name: string
}