You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/website/pages/api-docs/[[...page]].jsx

34 lines
927 B

import { productName, productSlug } from 'data/metadata'
import path from 'path'
import parseSwagger from '../../lib/swagger-parser'
import OpenApiPage, {
getPathsFromSchema,
getPropsForPage,
} from '../../components/openapi-page'
const targetFile = '../internal/gen/controller.swagger.json'
const pathFromRoot = 'api-docs'
export default function OpenApiDocsPage(props) {
return (
<OpenApiPage
{...props}
productName={productName}
productSlug={productSlug}
pathFromRoot={pathFromRoot}
/>
)
}
export async function getStaticPaths() {
const schema = await parseSwagger(path.join(process.cwd(), targetFile))
const paths = getPathsFromSchema(schema)
return { paths, fallback: false }
}
export async function getStaticProps({ params }) {
const schema = await parseSwagger(path.join(process.cwd(), targetFile))
const props = getPropsForPage(schema, params)
return { props }
}