Skip to content
Marco Metz edited this page Sep 26, 2019 · 9 revisions

Muster JSON-API die zu GraphQL umgewandelt wird.

Die Struktur und die möglichen Elemente orientiert sich am GraphQL Schema. Alle dort verfügbaren Elemente und Attribute sind auch in der JSOn Api verfügbar.

der Service für Bad-Belzig ist beispielsweise erreichbar unter dem POST-Request: https://json.bad-belzig.smart-village.app/api

Neben dem JSON Payload muss der Header Authorization gesetzt sein mit einem gültigen OAuth2 Token. Dieser wird dann an den MainServer durchgereicht.

Beispiel für die Erstellung eines Event:

Post Params:

{
  "events": [
    {
      "id": 2,
      "parent_id": "",
      "title": "Wildspuren",
      "description": "Mit der Naturwacht und dem Förster begeben wir uns ins Revier, um ...",
      "price_information": "2,50 Euro (erm. für Kinder bis 14: 1,50 Euro)",
      "category_id": 23,
      "ticket_url": "",
      "region": "Fläming",
      "accessibility_information": {
        "description": "",
        "url": "",
        "url_description": "",
        "types": ""
      },
      "created_at": "2017-07-31 13:16:19",
      "updated_at": "2018-07-31 16:16:19",
      "updated_at_tmb": "2018-07-31 13:16:19",
      "dates": [
        {
          "date_start": "2019-02-16",
          "time_start": "13:00:00",
          "date_end": "2019-02-16",
          "time_end": "18:00:00",
          "time_description": null,
          "use_only_time_description": false
        }
      ],
      "repeat": false,
      "repeat_duration": {
        "start": null,
        "end": null,
        "every_year": null
      },
      "urls": [
        {
          "url": "http://www.hoher-flaeming-naturpark.de",
          "description": "Naturpark Hoher Fläming"
        },
        {
          "url": "http://www.naturwacht.de",
          "description": "Naturwacht Brandenburg"
        }
      ],
      "highlight": {
        "event": false,
        "holiday": false,
        "monthly": false,
        "regional": false,
        "local": false
      },
      "address": {
        "addition": "Treffpunkt: Naturparkzentrum Hoher Fläming",
        "street": "Brennereiweg 45 OT Raben",
        "zip": "14823",
        "city": "Raben",
        "coordinates": {
          "lat": 52.041297912598,
          "lng": 12.578530311584
        }
      },
      "contact": {
        "phone": "+4903384860004",
        "fax": null,
        "email": "info@flaeming.net",
        "url": "http://www.flaeming.net"
      },
      "organizer": {
        "company_name": "Naturparkzentrum Hoher Fläming",
        "address": {
          "addition": "",
          "street": "Brennereiweg 45 OT Raben",
          "zip": "14823",
          "city": "Raben",
          "coordinates": {
            "lat": 52.041297912598,
            "lng": 12.578530311584
          }
        },
        "contact": {
          "phone": "+4903384860004",
          "fax": null,
          "email": "info@flaeming.net",
          "url": "http://www.flaeming.net"
        }
      },
      "location": {
        "id": 3581,
        "name": "Raben",
        "department": "Niemegk",
        "district": "Potsdam-Mittelmark",
        "region": "Fläming",
        "coordinates": {
          "lat": 52.042051020544,
          "lng": 12.577602953518
        }
      },
      "data_provider": {
        "name": "tmb",
        "address": {
          "addition": "",
          "street": "Musterstr. 123",
          "zip": "14567",
          "city": "Potsdam",
          "coordinates": {
            "lat": 52.345678,
            "lng": 12.345678
          }
        },
        "contact": {
          "phone": "+4903384860004",
          "fax": "",
          "email": "test@test.net",
          "url": "http://www.flaeming.net"
        },
        "logo": "image_link",
        "description": ""
      },
      "media_content": [
        {
          "type": "image",
          "link": "http://eingabe.events-in-brandenburg.de/images/itempics/4/2/2/item_457224_pic_1_medium.jpg",
          "caption_text": "Damhirsch"
        },
        {
          "type": "image",
          "link": "image_link_2",
          "caption_text": "Schwarzwild"
        }
      ]
    }
  ]
}

Der erste Key in den JSON-Daten definiert welche GraphQL Mutation angesteuert werden soll.

{
  "events": [
    {...}
  ]
}

Möglich sind folgende Keys welche dann auf die Mutation verweist:

  • events => createEventRecord
  • news => createNewsItem
  • tours => createPointOfInterest
  • point_of_interests => createTour
Clone this wiki locally