|
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