From d26a7fb7ded2072199551ca77c1ab8e5a87d870f Mon Sep 17 00:00:00 2001 From: naturzukunft <naturzukunft@hauschel.de> Date: Tue, 9 Jun 2020 13:34:07 +0200 Subject: [PATCH] As discussed in the meeting today --- specification/fairSyncApi.yml | 183 ++++++++++++++++++++-------------- 1 file changed, 107 insertions(+), 76 deletions(-) diff --git a/specification/fairSyncApi.yml b/specification/fairSyncApi.yml index 0bc0f78..973ffa2 100644 --- a/specification/fairSyncApi.yml +++ b/specification/fairSyncApi.yml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: - title: FairSync API Organisations/Places - description: FairSync API for synchronizing Organisations/Places between maps and platforms. See also https://nlnet.nl/project/FairSync + title: FairSync API PointOfInterest + description: FairSync API for synchronizing PointOfInterest between maps and platforms. See also https://nlnet.nl/project/FairSync version: 0.0.1 contact: name: FairSync API @@ -13,9 +13,9 @@ security: - basicAuth: [] - bearerAuth: [] paths: - /places: + /poi: get: - summary: Search for places + summary: Search for POIs tags: - Places parameters: @@ -91,56 +91,76 @@ components: type: string description: "Country code according to ISO 3166-1 Alpha-2" Contact: + type: object + properties: + emailaddress: + $ref: "#/components/schemas/Emailaddress" + phoneNumber: + $ref: "#/components/schemas/PhoneNumber" + website: + $ref: "#/components/schemas/Website" + Emailaddress: type: object required: - - emailAddresses + - email properties: - emailAddresses: - type: array - items: - type: object - required: - - primary - - email - properties: - primary: - type: boolean - description: - type: string - email: - type: string - format: email - phoneNumbers: - type: array - items: - type: object - required: - - primary - - phone - properties: - primary: - type: boolean - description: - type: string - phone: - type: string - format: phone - websites: - type: array - items: - type: object - required: - - primary - - url - properties: - primary: - type: boolean - description: - type: string - url: - type: string - format: url - Place: + description: + type: string + email: + type: string + format: email + PhoneNumber: + type: object + required: + - phone + properties: + description: + type: string + phone: + type: string + format: phone + Website: + type: object + required: + - url + properties: + description: + type: string + url: + type: string + format: url + Owner: + type: object + description: The owner of a POI. This is not a plattform, its more a person or a organisation, that is responsible for a concrete entry. + required: + - contacturl + properties: + contact: + $ref: '#/components/schemas/Contact' + Plattform: + type: object + description: The plattform that owns a POI. + required: + - url + properties: + url: + type: string + format: url + VerifiedTag: + type: object + description: Tags that are verified by the maintainer (a.k.a. plattform). Some platforms have service employees who validate entries and check whether tags have been allocated correctly. + required: + - url + properties: + tag: + type: string + verified: + type: string + enum: [verified, rejected] + verifiedBy: + $ref: '#/components/schemas/Contact' + + PointOfInterest: required: - address - contact @@ -148,7 +168,6 @@ components: - language - license - source -# - status - title properties: id: @@ -158,10 +177,26 @@ components: example: 'https://kartevonmorgen.org/#/?entry=e58b14c1aa4e446bb1700b03dcac3069' version: type: integer - createdAt: - $ref: '#/components/schemas/DateTime' language: $ref: '#/components/schemas/Language' + createdAt: + $ref: '#/components/schemas/DateTime' + deleted: + type: boolean + description: If true, this POI was deleted on the plattform you requested POIs + license: + type: string + source: + type: object + description: Origin of the dataset + required: + - providerId + - entryId + properties: + owner: + $ref: '#/components/schemas/Owner' + plattform: + $ref: '#/components/schemas/Plattform' title: type: string description: @@ -170,6 +205,10 @@ components: type: array items: type: string + verifiedTags: + type: array + items: + $ref: '#/components/schemas/VerifiedTag' images: type: array items: @@ -184,8 +223,11 @@ components: address: # This is the Place adress. It may be the same as the legalAddress. This address is mandatory. $ref: '#/components/schemas/Address' - contact: - $ref: '#/components/schemas/Contact' + contacts: + type: array + items: + $ref: '#/components/schemas/Contact' + openingHours: type: object description: | @@ -228,26 +270,15 @@ components: oneOf: - type: number - type: string - license: - type: string - source: - type: object - description: Origin of the dataset - required: - - providerId - - entryId - properties: - providerId: - type: string - entryId: - type: string - description: Original id of the entry - url: - type: string - format: url - #status: - #To be discussed. Fredy is not happy with providing a kind of process! - #$ref: '#/components/schemas/PublicationStatus' + additionalProperties: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string parameters: BoundingBox: name: boundingBox -- GitLab