mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-07-31 01:08:41 +02:00
Swagger/OpenAPI conversion endpoint in Admin API #504
Closed
opened 2025-12-29 15:25:31 +01:00 by adam
·
8 comments
No Branch/Tag Specified
master
1341-mapping-json
stef-aspire-tests-updates
bug/973-TinyMapper
bug/1149-AppendGuidToSavedMappingFile
feature/1150-DockerImageVersion
61
stef-1108
stef-1097
stef-1083-MessageOptions_Type_Conflict
stef-1062-logger
stef-IgnoreOpenApiErrors
stef-928-TypeLoadException-FluentAssertions-net472
nunit
stef-849
stef-847-regex-questionmark
http_verb
WireMockServerContext
webapp
ai
CommandLineArgumentsParser
2.13.0
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.25.0
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.0
1.16.0
1.15.0
1.14.0
1.13.0
1.12.0
1.11.2
1.11.0
1.10.1
1.10.0
1.9.1
1.9.0
1.8.18
1.8.17
1.8.16
1.8.15
1.8.14
1.8.13
1.8.12
1.8.11
1.8.10
1.8.9
1.8.8
1.8.7
1.8.6
1.8.5
1.8.3
1.8.2
1.8.1
1.8.0
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.62
1.5.61
1.5.60
1.5.59
1.5.58
1.5.57
1.5.56
1.5.55
1.5.54
1.5.53
1.5.52
1.5.51
1.5.50
1.5.49
1.5.48
1.5.47
1.5.46
1.5.45
1.5.44
1.5.43
1.5.42
1.5.41
1.5.40
1.5.39
1.5.38
1.5.37
1.5.36
1.5.35
1.5.34
1.5.33
1.5.32
1.5.31
1.5.30
1.5.29
1.5.28
1.5.27
1.5.26
1.5.25
1.5.24
1.5.23
1.5.22
1.5.21
1.5.20
1.5.19
1.5.18
1.5.17
1.5.16
1.5.15
1.5.14
1.5.13
1.5.12
1.5.11
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.43
1.4.42
1.4.41
1.4.40
1.4.39
1.4.38
1.4.37
1.4.36
1.4.35
1.4.34
1.4.33
1.4.32
1.4.31
1.4.30
1.4.29
1.4.28
1.4.27
1.4.26
1.4.25
1.4.24
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.10
1.3.9
1.3.8
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.18
1.2.17
1.2.16
1.2.15
1.2.14
1.2.13
1.2.12
1.2.11.0
1.2.10
1.2.9.0
1.2.8.0
1.2.7.0
1.2.6.0
1.2.5.0
1.2.4.0
1.2.3.0
1.2.2.0
1.2.1.0
1.2.0.0
1.1.10
1.1.9.0
1.1.8.0
1.1.7.0
1.1.6.0
1.1.5.0
1.1.3.0
1.1.2.0
1.1.1.0
1.1.0.0
1.0.43.0
1.0.42.0
1.0.41.0
1.0.40.0
1.0.39.0
1.0.38.0
1.0.37.0
1.0.36.0
1.0.35.0
1.0.34.0
1.0.33.0
1.0.32.0
1.0.31.0
1.0.29.0
1.0.28.0
1.0.25.0
1.0.24.0
1.0.23.0
1.0.22.0
1.0.21.0
1.0.20.0
1.0.19.0
1.0.18.0
1.0.17.0
1.0.16.0
1.0.15.0
1.0.14.0
1.0.13.0
1.0.12.0
1.0.11.0
1.0.10.0
1.0.9.0
1.0.8.0
1.0.7.0
1.0.6.1
1.0.6
1.0.5
1.0.4.21
1.0.4.20
1.0.4.19
1.0.4.18
1.0.4.17
1.0.4.16
1.0.4.15
1.0.4.14
1.0.4.13
1.0.4.12
1.0.4.11
1.0.4.10
1.0.4.9
1.0.4.8
1.0.4.7
1.0.4.6
1.0.4.5
1.0.4.4
1.0.4.3
1.0.4.2
1.0.4.1
1.0.4.0
1.0.3.20
1.0.3.19
1.0.3.18
1.0.3.17
1.0.3.16
1.0.3.15
1.0.3.14
1.0.3.13
1.0.3.12
1.0.3.11
1.0.3.10
1.0.3.9
1.0.3.8
1.0.3.7
1.0.3.6
1.0.3.5
1.0.3.4
1.0.3.3
1.0.3.2
1.0.3.1
1.0.3.0
1.0.2.13
1.0.2.12
1.0.2.11
1.0.2.10
1.0.2.9
1.0.2.8
1.0.2.7
1.0.2.6
1.0.2.5
1.0.2.4
1.0.2.1
1.0.2.0
1.0.1.5
1.0.1.3
1.0.1.2
1.0.1.1
1.0.0.0
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/WireMock.Net-wiremock#504
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @laslanian on GitHub (Mar 24, 2023).
Originally assigned to: @StefH on GitHub.
Hello, first off I'd like to thank everyone who contributed to the making of WireMock.Net!
I was wondering if it would be possible, and what would be the best way, to expose some of the OpenAPIParser methods in the Admin API?
The goal is to be able to submit a POST request to the Admin API containing Swagger/OpenAPI within the body, and receive back the converted WireMock mappings in the response.
@StefH commented on GitHub (Mar 26, 2023):
The logic for parsing an swagger/openapi document to a wiremock.net mapping is done via the WireMock.Net.OpenApiParser NuGet.
And because this NuGet does not support all frameworks used in WireMock.Net, this is a separate package.
However, there are some extension methods which can you use:
https://github.com/WireMock-Net/WireMock.Net/blob/master/src/WireMock.Net.OpenApiParser/Extensions/WireMockServerExtensions.cs
Note that this is not exactly what you ask, you want an API Admin endpoint to convert Swagger/OpenAPI and get back the mappings.
I'll take a look if that can be added.
@StefH commented on GitHub (Mar 28, 2023):
@laslanian
I've create a preview version (1.5.21-ci-17268) (https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions) which you can use to convert an openapi/swagger document to mappings.
Do a POST to
/__admin/openapi/convertto convert a openapi/swagger document to mappings (the mappings are only returned)Do a POST to
/__admin/openapi/saveto convert a openapi/swagger document to mappings + save the mappings in WireMock Server@laslanian commented on GitHub (Mar 28, 2023):
@StefH Thank you so much for such a quick turnaround on this! To be honest I was not expecting this to be added in, but thank you for that. I will try this out and let you know how it went.
@laslanian commented on GitHub (Mar 29, 2023):
@StefH The endpoints are working as expected with __admin/openapi/convert returning the mapping, and __admin/openapi/save persisting it to WireMock instance.
I did notice an inconsistency with the returned mappings.
The new endpoint (__admin/openapi/convert) returns the mappings in a different format than the existing __admin/mappings endpoint, which is also different than the mappings used in WireMock Java version (WireMock.org) as seen below.
Due to this inconsistency, importing the converted mappings into the Java version has many issues. Would it be possible to align these formats? I would be happy to contribute my time to working on this if there is initiative on this subject.
Original Swagger Json
WireMock.Net Mapping (POST __admin/openapi/convert)
WireMock.Net Mapping (GET __admin/mappings)
WireMock.org Mapping (GET __admin/mappings)
@StefH commented on GitHub (Mar 29, 2023):
I did some quick tests using your example pet store json. And it seems that the mappings are the same, although the ordering is different.
And about WireMock.Org --> https://github.com/WireMock-Net/WireMock.Net/wiki/WireMock.Org
@StefH commented on GitHub (Apr 1, 2023):
@laslanian
Is this clear?
@StefH commented on GitHub (Apr 5, 2023):
@laslanian
Can I merge this code change to the master?
@StefH commented on GitHub (Apr 8, 2023):
PR is merged