|
22 | 22 |
|
23 | 23 | import com.fasterxml.jackson.core.JsonGenerator; |
24 | 24 | import com.fasterxml.jackson.databind.SerializerProvider; |
25 | | -import io.swagger.v3.core.converter.AnnotatedType; |
26 | | -import io.swagger.v3.core.converter.ModelConverters; |
27 | | -import io.swagger.v3.core.converter.ResolvedSchema; |
28 | | -import io.swagger.v3.core.util.AnnotationsUtils; |
29 | 25 | import io.swagger.v3.core.util.Json; |
30 | | -import io.swagger.v3.oas.models.media.MapSchema; |
31 | | -import io.swagger.v3.oas.models.media.ObjectSchema; |
32 | | -import io.swagger.v3.oas.models.media.StringSchema; |
| 26 | +import org.springdoc.core.SpringDocConfigProperties; |
33 | 27 | import org.springdoc.core.customizers.OpenApiCustomiser; |
34 | 28 | import org.springdoc.hateoas.converters.CollectionModelContentConverter; |
| 29 | +import org.springdoc.hateoas.converters.OpenApiHateoasLinksCustomiser; |
35 | 30 | import org.springdoc.hateoas.converters.RepresentationModelLinksOASMixin; |
36 | 31 |
|
37 | 32 | import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; |
|
40 | 35 | import org.springframework.context.annotation.Bean; |
41 | 36 | import org.springframework.context.annotation.Configuration; |
42 | 37 | import org.springframework.context.annotation.Lazy; |
43 | | -import org.springframework.hateoas.Link; |
44 | 38 | import org.springframework.hateoas.Links; |
45 | 39 | import org.springframework.hateoas.RepresentationModel; |
46 | 40 | import org.springframework.hateoas.server.LinkRelationProvider; |
@@ -93,22 +87,13 @@ CollectionModelContentConverter collectionModelContentConverter(HateoasHalProvid |
93 | 87 | @Bean |
94 | 88 | @ConditionalOnMissingBean |
95 | 89 | @Lazy(false) |
96 | | - OpenApiCustomiser linksSchemaCustomiser(HateoasHalProvider halProvider) { |
| 90 | + OpenApiCustomiser linksSchemaCustomiser(HateoasHalProvider halProvider, SpringDocConfigProperties springDocConfigProperties) { |
97 | 91 | if (!halProvider.isHalEnabled()) { |
98 | 92 | return openApi -> { |
99 | 93 | }; |
100 | 94 | } |
101 | 95 | Json.mapper().addMixIn(RepresentationModel.class, RepresentationModelLinksOASMixin.class); |
102 | | - |
103 | | - ResolvedSchema resolvedLinkSchema = ModelConverters.getInstance() |
104 | | - .resolveAsResolvedSchema(new AnnotatedType(Link.class)); |
105 | | - |
106 | | - return openApi -> openApi |
107 | | - .schema("Link", resolvedLinkSchema.schema) |
108 | | - .schema("Links", new MapSchema() |
109 | | - .additionalProperties(new StringSchema()) |
110 | | - .additionalProperties(new ObjectSchema().$ref(AnnotationsUtils.COMPONENTS_REF +"Link"))); |
| 96 | + return new OpenApiHateoasLinksCustomiser(springDocConfigProperties); |
111 | 97 | } |
112 | 98 |
|
113 | | - |
114 | 99 | } |
0 commit comments