Skip to content

Commit

Permalink
chore: add openapi specification
Browse files Browse the repository at this point in the history
  • Loading branch information
NilsOveTen committed Jan 25, 2024
1 parent d946b2d commit 532b00f
Show file tree
Hide file tree
Showing 2 changed files with 363 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# fdk-resource-service
Service for accessing FDK data

The only mandatory field for any resource is the unique id field, which can be used to GET the resource. See the [openapi specification](https://raw.githubusercontent.com/Informasjonsforvaltning/fdk-resource-service/main/openapi.yaml) for the list of supported resources and associated endpoints.

## Testing the project
```
// Run all tests
Expand Down
361 changes: 361 additions & 0 deletions openapi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,361 @@
openapi: 3.0.2
info:
version: 1.0.0
title: FDK Resource Service
contact:
name: Digitaliseringsdirektoratet
url: 'https://fellesdatakatalog.digdir.no'
email: fellesdatakatalog@digdir.no
license:
name: License of API
url: 'http://data.norge.no/nlod/no/2.0'
servers:
- url: 'https://resource.api.fellesdatakatalog.digdir.no'
description: Production
- url: 'https://resource.api.demo.fellesdatakatalog.digdir.no'
description: Demo
- url: 'https://resource.api.staging.fellesdatakatalog.digdir.no'
description: Test
paths:
/concepts:
post:
description: Store list of concepts
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
responses:
'200':
description: OK
'401':
description: Not authenticated
get:
description: Returns all concepts
parameters:
- in: query
name: includeRemoved
description: indicate if removed concepts should be included in response, defaults to false
required: false
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
/concepts/{id}:
get:
description: Returns single concept
parameters:
- name: id
in: path
description: id of concept
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Resource"

/data-services:
post:
description: Store list of data services
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
responses:
'200':
description: OK
'401':
description: Not authenticated
get:
description: Returns all data services
parameters:
- in: query
name: includeRemoved
description: indicate if removed data services should be included in response, defaults to false
required: false
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
/data-services/{id}:
get:
description: Returns single data service
parameters:
- name: id
in: path
description: id of data service
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Resource"
/datasets:
post:
description: Store list of datasets
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
responses:
'200':
description: OK
'401':
description: Not authenticated
get:
description: Returns all datasets
parameters:
- in: query
name: includeRemoved
description: indicate if removed datasets should be included in response, defaults to false
required: false
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
/datasets/{id}:
get:
description: Returns single dataset
parameters:
- name: id
in: path
description: id of dataset
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Resource"
/events:
post:
description: Store list of events
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
responses:
'200':
description: OK
'401':
description: Not authenticated
get:
description: Returns all events
parameters:
- in: query
name: includeRemoved
description: indicate if removed events should be included in response, defaults to false
required: false
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
/events/{id}:
get:
description: Returns single event
parameters:
- name: id
in: path
description: id of event
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Resource"
/information-models:
post:
description: Store list of information models
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
responses:
'200':
description: OK
'401':
description: Not authenticated
get:
description: Returns all information models
parameters:
- in: query
name: includeRemoved
description: indicate if removed information models should be included in response, defaults to false
required: false
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
/information-models/{id}:
get:
description: Returns single information model
parameters:
- name: id
in: path
description: id of information model
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Resource"
/services:
post:
description: Store list of services
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
responses:
'200':
description: OK
'401':
description: Not authenticated
get:
description: Returns all services
parameters:
- in: query
name: includeRemoved
description: indicate if removed services should be included in response, defaults to false
required: false
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Resource'
/services/{id}:
get:
description: Returns single service
parameters:
- name: id
in: path
description: id of service
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Resource"

components:
schemas:

Resource:
type: object
properties:
id:
type: string
description: Resource id
additionalProperties: true

securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key

0 comments on commit 532b00f

Please sign in to comment.