Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Beskrivning
Camunda BPM är en processmotor och en viktig del i Sundsvalls kommuns strategi för att bygga en generell ärendehantering.
Det finns ett Rest-api för att prata med Camunda, men det kräver genomgripande kunskap av hur processmotorn fungerar.
Därför finns ProcessEngine-api:et för att göra det enklare att prata med processmotorn.
https://github.com/Sundsvallskommun/process-engine-parking-permit
Livscykelstatus
Test
Lösningsbeskrivning
API:et är ett Spring Boot-projekt som försöker efterlikna övriga API:er inom Sundsvalls kommuns utvecklingsfabrik. Därför används dept-44-dependecies för till exempel Webclient och Test.
Hantering av personuppgifter
Inga personuppgifter hanteras, endast ärendenummer skickas in och sparas i processmotorns historik. För tillfället finns ingen databas eller liknande kopplad till API:et.
API specifikation
StartProcess
Starta en ny processinstans med namn och ärende id.
POST
/process-engine/startprocess
Body:
Code Block |
---|
{ "processName":"Namn", "caseNumber": "123", "processInstanceId":"1" } |
UpdateProcess
Updatera en process som körs och väntar på svar innan den kör vidare. Skicka med processInstanceId
för den process som det gäller.
POST
/process-engine/updateprocess
Body:
Code Block |
---|
{ "processName":"Namn", "caseNumber": "123", "processInstanceId":"1" } |
<API specifikation i Swagger-UI (använd plug-in).
Swagger ui |
---|
openapi: 3.0.1
info:
title: Process Engine
contact: {}
license:
name: MIT License
url: 'https://opensource.org/licenses/MIT'
version: '1.0'
servers:
- url: 'http://localhost:8888/process-engine-api'
description: Generated server url
security:
- default: []
paths:
/process/update-process:
post:
tags:
- camunda-endpoints
description: Update a process instance with the given process instance ID
operationId: updateParkingPermitProcess
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CaseObject'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ParkingPermitResponse'
security:
- default: []
x-auth-type: Application & Application User
x-throttling-tier: Unlimited
x-wso2-application-security:
security-types:
- oauth2
optional: false
/process/start-process:
post:
tags:
- camunda-endpoints
description: Start a new process instance with the given process name
operationId: startParkingPermitProcess
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CaseObject'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ParkingPermitResponse'
security:
- default: []
x-auth-type: Application & Application User
x-throttling-tier: Unlimited
x-wso2-application-security:
security-types:
- oauth2
optional: false
/api-docs:
get:
tags:
- API
summary: OpenAPI
operationId: getApiDocs
responses:
'200':
description: OK
content:
application/yaml:
schema:
type: string
security:
- default: []
x-auth-type: None
x-throttling-tier: Unlimited
x-wso2-mutual-ssl: Optional
x-wso2-application-security:
security-types:
- oauth2
optional: false
components:
schemas:
CaseObject:
type: object
properties:
processName:
type: string
caseNumber:
type: string
processInstanceId:
type: string
ParkingPermitResponse:
type: object
properties:
processId:
type: string
example: bfc9d438-db4e-11ec-bb5b-0242ac110003
securitySchemes:
default:
type: oauth2
flows:
implicit:
authorizationUrl: 'https://test.com'
scopes: {}
x-wso2-cors:
corsConfigurationEnabled: false
accessControlAllowOrigins:
- '*'
accessControlAllowCredentials: false
accessControlAllowHeaders:
- authorization
- Access-Control-Allow-Origin
- Content-Type
- SOAPAction
- apikey
- testKey
accessControlAllowMethods:
- GET
- PUT
- POST
- DELETE
- PATCH
- OPTIONS
x-wso2-production-endpoints:
urls:
- 'https://saas080.sundsvall.se/process-engine-api/'
type: http
x-wso2-basePath: /process-engine/1.0
x-wso2-transports:
- https
x-wso2-response-cache:
enabled: false
cacheTimeoutInSeconds: 300
|
Publicera även en API-Key mot Sandbox som gör att man kan testköra API:et.
API-specifikationen skall såklart reflektera att API-design följts fullt ut.>
Säkerhetsklassning
Säkerhetsklass ?
Autentiseringsmetod: API Key
(Ref: Säkerhetsklassning av APIer )
API-ägare
<Kontaktuppgifter till den verksamhet som äger APIets livscykel>
Teknisk ägare
<Kontaktuppgifter till utvecklare/teknisk förvaltare>
Källkod
https://github.com/Sundsvallskommun/process-engine-parking-permit