fastify-serve-swagger-ui serves swagger UI for your fastify instance, at the same time allowig you to inject swagger specification of your choice as default speficiation.
npm i fastify-serve-swagger-ui
const fastify = require("fastify")();
fastify.register(require("fastify-serve-swagger-ui"), {
  // swagger specification which should be exposed
  specification: {
    type: "file",
    path: "./var/examples/example.yaml"
  },
  // path under which swagger-ui will be available
  path: "swagger"
});
const start = async () => {
  try {
    await fastify.listen(3000);
    console.log(`server listening on ${fastify.server.address().port}`);
  } catch (err) {
    console.error(err);
    process.exit(1);
  }
};
start();Given that ./var/examples/example.yaml is the path which is relative to the root of the project. You can then open http://localhost:3000/swagger/ and see the swagger-ui which shows your specification.
Another variant is to provide the specification fot the url, you can pass the object like this:
{
	specification: {
		type: "url",
		url: "http://petstore.swagger.io/v2/swagger.json"
	},
	path: 'swagger'
}
Basic working example is located under var/examples/simple.js.
fastify-serve-swagger-ui works wunderfully with fastify-blipp, try it out!
