Skip to content

Conversation

char0n
Copy link
Contributor

@char0n char0n commented Jun 28, 2022

Simple request interceptor

import { resolve } from '@swagger-api/apidom-reference';

const requestInterceptor = (config) => config;

await resolve('https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.1/webhook-example.json', {
  parse: { mediaType: 'application/vnd.oai.openapi+json;version=3.1.0' },
  resolve: {
    resolverOpts: {
      axiosConfig: {
        timeout: 10
        interceptors: { 
          request: requestInterceptor,
        },
      },
    },
  },
}); // Promise<ReferenceSet>

Request interceptor with error handling

import { resolve } from '@swagger-api/apidom-reference';

const requestInterceptorSuccess = (config) => config;
const requestInterceptorError = async (error) => Promise.reject(error);

await resolve('https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.1/webhook-example.json', {
  parse: { mediaType: 'application/vnd.oai.openapi+json;version=3.1.0' },
  resolve: {
    resolverOpts: {
      axiosConfig: {
        timeout: 10
        interceptors: { 
          request: [requestInterceptorSuccess, requestInterceptorError],
        },
      },
    },
  },
}); // Promise<ReferencSeSet>

Simple response interceptor

import { resolve } from '@swagger-api/apidom-reference';

const responseInterceptor = (response) => response;

await resolve('https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.1/webhook-example.json', {
  parse: { mediaType: 'application/vnd.oai.openapi+json;version=3.1.0' },
  resolve: {
    resolverOpts: {
      axiosConfig: {
        timeout: 10
        interceptors: { 
          response: responseInterceptor,
        },
      },
    },
  },
}); // Promise<ReferenceSet>

Response interceptor with error handling

import { resolve } from '@swagger-api/apidom-reference';

const responseInterceptorSuccess = (response) => response;
const responseInterceptorError = async (error) => Promise.reject(error);

await resolve('https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.1/webhook-example.json', {
  parse: { mediaType: 'application/vnd.oai.openapi+json;version=3.1.0' },
  resolve: {
    resolverOpts: {
      axiosConfig: {
        timeout: 10
        interceptors: { 
          response: [responseInterceptorSuccess, responseInterceptorError],
        },
      },
    },
  },
}); // Promise<ReferencSeSet>

@char0n char0n self-assigned this Jun 28, 2022
@char0n char0n added enhancement New feature or request ApiDOM labels Jun 28, 2022
@char0n char0n merged commit 3c40bcf into main Jun 28, 2022
@char0n char0n deleted the char0n/reference-axios-interceptors branch June 28, 2022 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ApiDOM enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant