Skip to content

Commit

Permalink
feat: customizable OpenAPI title
Browse files Browse the repository at this point in the history
  • Loading branch information
AnthonyFisi authored Jan 22, 2023
1 parent 8aa7908 commit 9065ed6
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
+ Allows doing an anti join, e.g. `/projects?select=*,clients(*)&clients=is.null`
+ Allows using or across related tables conditions
- #1100, Customizable OpenAPI title - @AnthonyFisi

### Fixed

Expand Down
7 changes: 4 additions & 3 deletions src/PostgREST/Response/OpenAPI.hs
Original file line number Diff line number Diff line change
Expand Up @@ -359,8 +359,8 @@ postgrestSpec rels pds ti (s, h, p, b) sd allowSecurityDef = (mempty :: Swagger)
& schemes ?~ [s']
& info .~ ((mempty :: Info)
& version .~ T.decodeUtf8 prettyVersion
& title .~ "PostgREST API"
& description ?~ d)
& title .~ fromMaybe "PostgREST API" dTitle
& description ?~ fromMaybe "This is a dynamic API generated by PostgREST" dDesc)
& externalDocs ?~ ((mempty :: ExternalDocs)
& description ?~ "PostgREST Documentation"
& url .~ URL ("https://postgrest.org/en/" <> docsVersion <> "/api.html"))
Expand All @@ -375,8 +375,9 @@ postgrestSpec rels pds ti (s, h, p, b) sd allowSecurityDef = (mempty :: Swagger)
where
s' = if s == "http" then Http else Https
h' = Just $ Host (T.unpack $ escapeHostName h) (Just (fromInteger p))
d = fromMaybe "This is a dynamic API generated by PostgREST" sd
securityDefName = "JWT"
(dTitle, dDesc) = fmap fst &&& fmap (T.dropWhile (=='\n') . snd) $
T.breakOn "\n" <$> sd

pickProxy :: Maybe Text -> Maybe Proxy
pickProxy proxy
Expand Down
14 changes: 14 additions & 0 deletions test/spec/Feature/OpenApi/OpenApiSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,20 @@ spec actualPgVersion = describe "OpenAPI" $ do

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

it "includes paths to tables" $ do
Expand Down
6 changes: 6 additions & 0 deletions test/spec/fixtures/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ CREATE SCHEMA "EXTRA ""@/\#~_-";
COMMENT ON SCHEMA v1 IS 'v1 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: -
--
Expand Down

0 comments on commit 9065ed6

Please sign in to comment.