All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.swagger.models.reader.ResourceListingReader Maven / Gradle / Ivy

There is a newer version: 1.0.71
Show newest version
package io.swagger.models.reader;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.models.apideclaration.ApiDeclaration;
import io.swagger.models.resourcelisting.ApiListingReference;
import io.swagger.models.resourcelisting.ResourceListing;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ResourceListingReader {
    public static void main(String[] args) throws IOException, URISyntaxException {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);

        String baseUrl = "http://petstore.swagger.io/api/api-docs";

        ResourceListing resourceListing = objectMapper.readValue(new URL(baseUrl), ResourceListing.class);
        Map apiDeclarations = new HashMap<>();

        List apis = resourceListing.getApis();

        if (apis != null) {
            for (ApiListingReference api : apis) {
                URL apiUrl;

                URI uri = new URI(api.getPath());
                if (uri.isAbsolute()) {
                    apiUrl = uri.toURL();
                } else {
                    apiUrl = new URL(baseUrl + api.getPath());
                }

                apiDeclarations.put(api.getPath(), objectMapper.readValue(apiUrl, ApiDeclaration.class));
            }
        }

        System.out.println("---=== Resource Listing (" + baseUrl + ") ==--");
        System.out.println(resourceListing);

        for (Map.Entry apiDeclarationEntry : apiDeclarations.entrySet()) {
            System.out.println("---=== API Declaration (" + apiDeclarationEntry.getKey() + ") ==--");
            System.out.println(apiDeclarationEntry.getValue());
        }

    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy