Ga naar hoofdinhoud

GitLab

Met GitLab kunnen API's gegenereerd worden in de pipeline. Dit kan door de gitlab-ci.yml aan te passen, zodat aan de hand van hoe de pipeline wordt gestart verschillende jobs gedraaid kunnen worden.

gitlab-ci.yml

Dit kan door een workflow toe te voegen:

workflow:
name: "$PIPELINE_NAME"
rules:
- if: '$CI_PIPELINE_SOURCE == "trigger" || ($CI_PIPELINE_SOURCE == "web" && $PIPELINE_TYPE == "api")'
variables:
PIPELINE_NAME: "OpenApi Build Pipeline"
- if: '$CI_PIPELINE_SOURCE == "push" || ($CI_PIPELINE_SOURCE == "web" && $PIPELINE_TYPE != "api")'
variables:
PIPELINE_NAME: "$CI_COMMIT_TITLE"

daarnaast voeg je in de includes lijst toe:

- project: "iprox/docker/config"
rules:
- if: '$CI_PIPELINE_SOURCE == "trigger" || ($CI_PIPELINE_SOURCE == "web" && $PIPELINE_TYPE == "api")'
ref: "main"
file: "/Jobs/Build/shared-build-api.yml"

Aan de andere includes die niet nodig zijn voor het genereren van de api, maar wel voor de normale build kan de volgende rule aan worden toegevoegd:

- if: '$CI_PIPELINE_SOURCE == "push" || ($CI_PIPELINE_SOURCE == "web" && $PIPELINE_TYPE != "api")'

De volgende variable wordt toegevoegd aan de variables:

IproxOpenApiGenerator_Version: "[versie]" deze staat gelijk aan de iprox versie in project.xml

Settings

In de CI/CD settings worden de volgende variables toegevoegd:

NaamOmschrijvingVoorbeeld
OpenApi_AuthenticationHet type authenticatieAnonymous
OpenApi_CmsUrlDe URL naar de CMS omgevinghttps://app-naam-omgeving-cms.azurewebsites.net/
OpenApi_DocumentationDescriptionEen omschrijving van de omgevingREST API voor [naam omgeving]
OpenApi_DocumentationTitleDe titel voor de API documentatie[naam omgeving] API
OpenApi_DocumentationVersionDe versie van de omgeving1.0.0
OpenApi_EnvSynDe Synchronisatie identificatie van de omgeving voor synchronisatie met IPROXapi of [naam]_api
OpenApi_IsDevelopmentWordt de api gegenereerd voor ontwikkelingfalse
OpenApi_PreviewWorden preview endpoints vrijgegevenfalse

Authenticatie

Voor authenticatie worden de volgende waarden ondersteund:

  • Anonymous
  • Bearer

Eerste keer pipeline draaien

Als bovenstaande punten zijn gedaan is de pipeline klaar om te draaien. De eerste keer moet de pipeline handmatig gestart worden.

Dit doe je door op de pipeline pagina op de knop "New pipeline" te drukken en de volgende variabele: mee te geven

  • key: PIPELINE_TYPE
  • value: api