Files
backstage/plugins/api-docs
Peter Colapietro 3f947b70d1 fix(react): use fragment (#3478)
The empty state's description is already wrapped in a Typography component so the one in MissingImplementsApisEmptyState is redundant.

https://github.com/backstage/backstage/blob/bbaadb63f88d0f7d42acb9fa1b1644f85bf1043e/packages/core/src/components/EmptyState/EmptyState.tsx#L57

By wrapping the EmptyState's description in a Typography the following warning is output to the console

```
react-dom.development.js?1930:89 Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>.
    in p (created by ForwardRef(Typography))
    in ForwardRef(Typography) (created by WithStyles(ForwardRef(Typography)))
    in WithStyles(ForwardRef(Typography)) (created by MissingImplementsApisEmptyState)
    in p (created by ForwardRef(Typography))
    in ForwardRef(Typography) (created by WithStyles(ForwardRef(Typography)))
    in WithStyles(ForwardRef(Typography)) (created by EmptyState)
    in div (created by ForwardRef(Grid))
    in ForwardRef(Grid) (created by WithStyles(ForwardRef(Grid)))
    in WithStyles(ForwardRef(Grid)) (created by EmptyState)
    in div (created by ForwardRef(Grid))
    in ForwardRef(Grid) (created by WithStyles(ForwardRef(Grid)))
    in WithStyles(ForwardRef(Grid)) (created by EmptyState)
    in div (created by ForwardRef(Grid))
    in ForwardRef(Grid) (created by WithStyles(ForwardRef(Grid)))
    in WithStyles(ForwardRef(Grid)) (created by EmptyState)
    in EmptyState (created by MissingImplementsApisEmptyState)
    in MissingImplementsApisEmptyState (created by Router)
    in Router (at EntityPage.tsx:78)
    in article (created by Content)
    in Content (created by Layout)
    in Layout (created by EntityPageLayout)
    in div (created by Page)
    in ThemeProvider (created by Page)
    in Page (created by EntityPageLayout)
    in EntityPageLayout (at EntityPage.tsx:64)
    in ServiceEntityPage (at EntityPage.tsx:127)
    in EntityPage (created by EntityPageSwitch)
    in EntityPageSwitch (created by Router)
    in EntityProvider (created by Router)
    in Route (created by Router)
    in Routes (created by Router)
    in Router (at App.tsx:46)
    in Route (at App.tsx:44)
    in Routes (at App.tsx:42)
    in div (created by SidebarPage)
    in SidebarPage (at App.tsx:40)
    in Route (created by AppRouter)
    in Routes (created by AppRouter)
    in Router (created by BrowserRouter)
    in BrowserRouter (created by AppRouter)
    in AppRouter (at App.tsx:39)
    in CssBaseline (created by WithStyles(CssBaseline))
    in WithStyles(CssBaseline) (created by AppThemeProvider)
    in ThemeProvider (created by AppThemeProvider)
    in AppThemeProvider (created by Provider)
    in AppContextProvider (created by Provider)
    in ApiProvider (created by Provider)
    in Provider (at App.tsx:36)
    in App (at src/index.tsx:6)
```

Co-authored-by: Peter Colapietro <petercolapietro@gmail.com>
2020-11-27 18:08:37 +01:00
..
2020-10-05 14:39:56 +02:00
2020-11-27 18:08:37 +01:00
2020-11-27 12:51:09 +00:00
2020-11-27 12:51:09 +00:00
2020-11-26 16:40:18 +01:00

API Documentation

WORK IN PROGRESS

This is an extension for the catalog plugin that provides components to discover and display API entities. APIs define the interface between components, see the system model for details. They are defined in machine readable formats and provide a human readable documentation.

The plugin provides a standalone list of APIs, as well as an integration into the API tab of a catalog entity.

Standalone API list OpenAPI Definition Integration into components

Right now, the following API formats are supported:

Other formats are displayed as plain text, but this can easily be extended.

To fill the catalog with APIs, provide entities of kind API. To link that a component provides or consumes an API, see the providesApis and consumesApis properties on the Component kind.