feat: customizable OpenAPI title
This commit is contained in:
@@ -21,6 +21,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
+ Offers a more flexible replacement for `!inner`, e.g. `/projects?select=*,clients(*)&clients=not.is.null`
|
+ Offers a more flexible replacement for `!inner`, e.g. `/projects?select=*,clients(*)&clients=not.is.null`
|
||||||
+ Allows doing an anti join, e.g. `/projects?select=*,clients(*)&clients=is.null`
|
+ Allows doing an anti join, e.g. `/projects?select=*,clients(*)&clients=is.null`
|
||||||
+ Allows using or across related tables conditions
|
+ Allows using or across related tables conditions
|
||||||
|
- #1100, Customizable OpenAPI title - @AnthonyFisi
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
|||||||
@@ -359,8 +359,8 @@ postgrestSpec rels pds ti (s, h, p, b) sd allowSecurityDef = (mempty :: Swagger)
|
|||||||
& schemes ?~ [s']
|
& schemes ?~ [s']
|
||||||
& info .~ ((mempty :: Info)
|
& info .~ ((mempty :: Info)
|
||||||
& version .~ T.decodeUtf8 prettyVersion
|
& version .~ T.decodeUtf8 prettyVersion
|
||||||
& title .~ "PostgREST API"
|
& title .~ fromMaybe "PostgREST API" dTitle
|
||||||
& description ?~ d)
|
& description ?~ fromMaybe "This is a dynamic API generated by PostgREST" dDesc)
|
||||||
& externalDocs ?~ ((mempty :: ExternalDocs)
|
& externalDocs ?~ ((mempty :: ExternalDocs)
|
||||||
& description ?~ "PostgREST Documentation"
|
& description ?~ "PostgREST Documentation"
|
||||||
& url .~ URL ("https://postgrest.org/en/" <> docsVersion <> "/api.html"))
|
& url .~ URL ("https://postgrest.org/en/" <> docsVersion <> "/api.html"))
|
||||||
@@ -375,8 +375,9 @@ postgrestSpec rels pds ti (s, h, p, b) sd allowSecurityDef = (mempty :: Swagger)
|
|||||||
where
|
where
|
||||||
s' = if s == "http" then Http else Https
|
s' = if s == "http" then Http else Https
|
||||||
h' = Just $ Host (T.unpack $ escapeHostName h) (Just (fromInteger p))
|
h' = Just $ Host (T.unpack $ escapeHostName h) (Just (fromInteger p))
|
||||||
d = fromMaybe "This is a dynamic API generated by PostgREST" sd
|
|
||||||
securityDefName = "JWT"
|
securityDefName = "JWT"
|
||||||
|
(dTitle, dDesc) = fmap fst &&& fmap (T.dropWhile (=='\n') . snd) $
|
||||||
|
T.breakOn "\n" <$> sd
|
||||||
|
|
||||||
pickProxy :: Maybe Text -> Maybe Proxy
|
pickProxy :: Maybe Text -> Maybe Proxy
|
||||||
pickProxy proxy
|
pickProxy proxy
|
||||||
|
|||||||
@@ -42,6 +42,20 @@ spec actualPgVersion = describe "OpenAPI" $ do
|
|||||||
|
|
||||||
liftIO $ docsUrl `shouldBe` Just (String ("https://postgrest.org/en/" <> docsVersion <> "/api.html"))
|
liftIO $ docsUrl `shouldBe` Just (String ("https://postgrest.org/en/" <> docsVersion <> "/api.html"))
|
||||||
|
|
||||||
|
describe "schema" $ do
|
||||||
|
|
||||||
|
it "includes title and comments to schema" $ do
|
||||||
|
r <- simpleBody <$> get "/"
|
||||||
|
|
||||||
|
let childGetTitle = r ^? key "info" . key "title"
|
||||||
|
let childGetDescription = r ^? key "info" . key "description"
|
||||||
|
|
||||||
|
liftIO $ do
|
||||||
|
|
||||||
|
childGetTitle `shouldBe` Just "My API title"
|
||||||
|
|
||||||
|
childGetDescription `shouldBe` Just "My API description\nthat spans\nmultiple lines"
|
||||||
|
|
||||||
describe "table" $ do
|
describe "table" $ do
|
||||||
|
|
||||||
it "includes paths to tables" $ do
|
it "includes paths to tables" $ do
|
||||||
|
|||||||
Vendored
+6
@@ -26,6 +26,12 @@ CREATE SCHEMA "EXTRA ""@/\#~_-";
|
|||||||
COMMENT ON SCHEMA v1 IS 'v1 schema';
|
COMMENT ON SCHEMA v1 IS 'v1 schema';
|
||||||
COMMENT ON SCHEMA v2 IS 'v2 schema';
|
COMMENT ON SCHEMA v2 IS 'v2 schema';
|
||||||
|
|
||||||
|
COMMENT ON SCHEMA test IS
|
||||||
|
$$My API title
|
||||||
|
|
||||||
|
My API description
|
||||||
|
that spans
|
||||||
|
multiple lines$$;
|
||||||
--
|
--
|
||||||
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
|
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
|
||||||
--
|
--
|
||||||
|
|||||||
Reference in New Issue
Block a user