citrusframework / citrusframework/citrus-simulator

citrus actions for REST api

Open
#200 2 comments 0 reactions 0 assignees View on GitHub
java Prio: Low Type: Enhancement Type: Feature
Dominant language
Java
Stars
47
Forks
45
Avg merge
4d 10h
Merged PRs (30d)
7

Description

as a user of both citrusframework/citrus and citrusframework/citrus-simulator I want to have standard "actions" that call a citrus API with the right arguments.

a good way of doing this is by extracting the OpenAPI specification from the simulator, then add a new module (name to be thought of) with generated clients. I would use some [java-generator](https://openapi-generator.tech/docs/generators/java/) for this, preferably one without spring so the end user is not dependent upon `citrus-spring`.

the specifications should be stored in one file per resource. they belong into the `simulator-starter` (soon to be `citrus-spring-boot-simulator`, see #193) module, because it is the root of the API. multiple files are better maintainable than one large file.

the server implementation should be based on the OpenAPI as well (interfaces only, the already present resources should then implement these. that ensures compatibility of both client and server at all times. use the [OpenAPI Spring generator](https://openapi-generator.tech/docs/generators/spring/).

it can be split into the following tasks whereas the first task must be done before all others:
- [ ] extract OpenAPI from v3/api-docs into files
- [ ] create a new module with clients
- [ ] switch the server implementation to the OpenAPI spring generator

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the simulator-starter module and its v3/api-docs output, then review the linked OpenAPI Java and Spring generator guidance. Extract one specification per resource before creating the client module and replacing the server implementation with generated interfaces. Done means all three checklist tasks are completed and client/server compatibility is based on the specifications.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, openapi, spring
Domain
api, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.