{"id":107645,"date":"2020-11-17T10:00:00","date_gmt":"2020-11-17T08:00:00","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=107645"},"modified":"2020-11-16T14:48:02","modified_gmt":"2020-11-16T12:48:02","slug":"stylish-api","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html","title":{"rendered":"Stylish API"},"content":{"rendered":"<p>In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +).<\/p>\n<h2 class=\"wp-block-heading\">Styling<\/h2>\n<h3 class=\"wp-block-heading\">Default style<\/h3>\n<p>The default style for Swagger UI has changed from the vanilla Swagger UI to a Quarkus branded page:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"450\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/quarkus_brand-1024x450.png\" alt=\"\" class=\"wp-image-107655\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/quarkus_brand-1024x450.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/quarkus_brand-300x132.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/quarkus_brand-768x338.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/quarkus_brand.png 1258w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>In this post we mostly focus on Swagger UI, but the styling options also apply to the <a href=\"https:\/\/quarkus.io\/guides\/microprofile-graphql#graphiql-ui\">GraphQL UI<\/a> and the <a href=\"https:\/\/quarkus.io\/guides\/microprofile-health#health-ui\">Health UI<\/a>.<\/p>\n<h3 class=\"wp-block-heading\">Theme<\/h3>\n<p><a href=\"https:\/\/ostranme.github.io\/swagger-ui-themes\/\">Swagger UI Themes<\/a> are now available in configuration, with the default theme being \u2018feeling blue\u2019.<\/p>\n<p>You can change the theme by setting the <code>quarkus.swagger-ui.theme<\/code> property, for example:<\/p>\n<div>\n<div id=\"highlighter_643360\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">quarkus.swagger-ui.theme=monokai<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/themed-1024x454.png\" alt=\"\" class=\"wp-image-107656\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/themed-1024x454.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/themed-300x133.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/themed-768x341.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/themed.png 1251w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>You can also go back to the original (vanilla) Swagger UI theme:<\/p>\n<div>\n<div id=\"highlighter_473137\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">quarkus.swagger-ui.theme=original<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/original-1024x454.png\" alt=\"\" class=\"wp-image-107657\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/original-1024x454.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/original-300x133.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/original-768x341.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/original.png 1251w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>Theme options available:<\/p>\n<ul class=\"wp-block-list\">\n<li>feeling-blue (default)<\/li>\n<li>original<\/li>\n<li>flattop<\/li>\n<li>material<\/li>\n<li>monokai<\/li>\n<li>muted<\/li>\n<li>newspaper<\/li>\n<li>outline<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">Logo<\/h3>\n<p>As part of the custom branding, you can supply your own logo to replace the Quarkus logo. We are going to use <a href=\"https:\/\/www.standardbank.co.za\/\">Standard Bank<\/a> as an example on how you can brand the page:<\/p>\n<p>NOTE: Hot reload is not working for logo changes, and remember browser cache, you might need to <a href=\"https:\/\/refreshyourcache.com\/en\/cache\/\">force refresh<\/a> your browser.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_logo-1024x454.png\" alt=\"\" class=\"wp-image-107658\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_logo-1024x454.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_logo-300x133.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_logo-768x341.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_logo.png 1251w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>To supply your own logo, you need to place a file called <code>logo.png<\/code> in <code>src\/main\/resources\/META-INF\/branding<\/code>.<\/p>\n<h3 class=\"wp-block-heading\">Style<\/h3>\n<p>You can go further, and supply your own <code>style.css<\/code>, to fine-tune the branding. In example, to change the <code>topbar<\/code> of the Swagger-UI screen to the corporate colors of Standard Bank:<\/p>\n<div>\n<div id=\"highlighter_821792\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">html{<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">box-sizing: border-box;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">overflow: -moz-scrollbars-vertical;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">overflow-y: scroll;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">*,<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\">*:before,<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\">*:after<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">box-sizing: inherit;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">body{<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">margin:<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">;<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">background: whitesmoke;<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java plain\">.swagger-ui .topbar { &lt;<\/code><code class=\"java value\">1<\/code><code class=\"java plain\">&gt;<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">background-color: #0033a1;<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number22 index21 alt1\">&nbsp;<\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java plain\">#footer {<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">background-color: #0033a1;<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">font-family:sans-serif;<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">color:white;<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">font-size:<\/code><code class=\"java value\">70<\/code><code class=\"java plain\">%;<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"java plain\">text-align: center;<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>&lt;1&gt; here set the <code>topbar<\/code> background color.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_css-1024x454.png\" alt=\"\" class=\"wp-image-107659\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_css-1024x454.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_css-300x133.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_css-768x341.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_css.png 1251w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>You can change any styling element in this css file, you need to place this file called <code>style.css<\/code> in <code>src\/main\/resources\/META-INF\/branding<\/code>.<\/p>\n<h3 class=\"wp-block-heading\">Other styling options<\/h3>\n<p>You can also set the HTML title, and add a footer:<\/p>\n<div>\n<div id=\"highlighter_492636\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">quarkus.swagger-ui.title=OpenAPI <\/code><code class=\"java keyword\">for<\/code> <code class=\"java plain\">Everyone<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">quarkus.swagger-ui.footer=\u00a9 <\/code><code class=\"java value\">2020<\/code> <code class=\"java plain\">. Standard Bank<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Along with other OpenAPI Header fields that can be set via config (as discussed in <a href=\"\/post\/openapi_for_everyone\/\">this post<\/a>):<\/p>\n<div>\n<div id=\"highlighter_960810\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.title=Standard Bank API<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.version=<\/code><code class=\"java value\">1.0<\/code><code class=\"java plain\">.<\/code><code class=\"java value\">0<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.description=The banking API<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.contact.email=it<\/code><code class=\"java color1\">@standardbank<\/code><code class=\"java plain\">.co.za<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.contact.name=Standard Bank IT<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.contact.url=https:<\/code><code class=\"java comments\">\/\/www.standardbank.com<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.license.name=Apache <\/code><code class=\"java value\">2.0<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\">mp.openapi.extensions.smallrye.info.license.url=http:<\/code><code class=\"java comments\">\/\/www.apache.org\/licenses\/LICENSE-2.0.html<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>The UI is now fully branded:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"689\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_footer-1024x689.png\" alt=\"\" class=\"wp-image-107660\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_footer-1024x689.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_footer-300x202.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_footer-768x516.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/standardbank_footer.png 1258w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<h2 class=\"wp-block-heading\">Other Swagger UI Options<\/h2>\n<p>Another new feature available in Quarkus (v1.10.0 +) is the ability to set any of the <a href=\"https:\/\/swagger.io\/docs\/open-source-tools\/swagger-ui\/usage\/configuration\/\">configuration options<\/a> available in Swagger UI. As an example, we can set the <code>urls<\/code> and add the petstore (as the default selected option) to Swagger UI:<\/p>\n<div>\n<div id=\"highlighter_296622\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">quarkus.swagger-ui.urls.<\/code><code class=\"java keyword\">default<\/code><code class=\"java plain\">=\/openapi<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">quarkus.swagger-ui.urls.petstore=https:<\/code><code class=\"java comments\">\/\/petstore.swagger.io\/v2\/swagger.json<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">quarkus.swagger-ui.urls-primary-name=petstore<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>This will change the <code>topbar<\/code> to have a dropdown box with the urls provided:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"489\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/petstore-1024x489.png\" alt=\"\" class=\"wp-image-107661\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/petstore-1024x489.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/petstore-300x143.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/petstore-768x367.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/petstore.png 1258w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>Another example, <code>supportedSubmitMethods<\/code> can hide the <code>Try it out<\/code> button for certain HTTP Method Types:<\/p>\n<div>\n<div id=\"highlighter_615491\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">quarkus.swagger-ui.supported-submit-methods=get<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Note below the missing <code>Try it out<\/code> button on the <code>POST<\/code><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/tryitout-1024x682.png\" alt=\"\" class=\"wp-image-107662\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/tryitout-1024x682.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/tryitout-300x200.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/tryitout-768x512.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/tryitout.png 1258w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>All other Swagger UI options are now available to configure the UI.<\/p>\n<h2 class=\"wp-block-heading\">Other Small new features<\/h2>\n<p>Two small new features in OpenAPI and Swagger UI, the ability to add the Health Endpoints and the ability to disable the UI and\/or Schema in Runtime.<\/p>\n<h3 class=\"wp-block-heading\">Add Health API to Open API<\/h3>\n<p>If you are using the <code>smallrye-health<\/code> extension, you can add the Health Endpoints to OpenAPI:<\/p>\n<div>\n<div id=\"highlighter_449846\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">quarkus.health.openapi.included=<\/code><code class=\"java keyword\">true<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"190\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/health-1024x190.png\" alt=\"\" class=\"wp-image-107663\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/health-1024x190.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/health-300x56.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/health-768x143.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2020\/11\/health.png 1258w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<h3 class=\"wp-block-heading\">Disable in Runtime<\/h3>\n<p>If you included the UI in your app (<code>quarkus.swagger-ui.always-include=true<\/code>), you can now disable it when starting the application.<\/p>\n<div>\n<div id=\"highlighter_965975\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">java -jar -Dquarkus.swagger-ui.enable=<\/code><code class=\"java keyword\">false<\/code> <code class=\"java plain\">target\/yourapp-<\/code><code class=\"java value\">1.0<\/code><code class=\"java plain\">.<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">-runner.jar<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>This will return a <strong>HTTP 404 (Not Found)<\/strong> on the Swagger UI page.<\/p>\n<p>Similarly you can disable the schema (usually under <code>\/openai<\/code>) by doing:<\/p>\n<div>\n<div id=\"highlighter_47954\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">java -jar -Dquarkus.smallrye-openapi.enable=<\/code><code class=\"java keyword\">false<\/code> <code class=\"java plain\">target\/yourapp-<\/code><code class=\"java value\">1.0<\/code><code class=\"java plain\">.<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">-runner.jar<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Java Code Geeks with permission by Phillip Kr\u00fcger, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener noreferrer\">JCG program<\/a>. See the original article here: <a href=\"https:\/\/www.phillip-kruger.com\/post\/Stylish-API\/\" target=\"_blank\" rel=\"noopener noreferrer\">Stylish API<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +). Styling Default style The default style for Swagger UI has changed from the vanilla Swagger UI to a Quarkus branded page: In this post we mostly focus on Swagger UI, &hellip;<\/p>\n","protected":false},"author":10628,"featured_media":112,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[1731,2034,1975,1029],"class_list":["post-107645","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-microprofile","tag-openapi","tag-quarkus","tag-swagger"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Stylish API - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +). Styling Default\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stylish API - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +). Styling Default\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-17T08:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Phillip Kruger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Phillip Kruger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html\"},\"author\":{\"name\":\"Phillip Kruger\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/f24087666e9c716ac25d6c5aceff9a6a\"},\"headline\":\"Stylish API\",\"datePublished\":\"2020-11-17T08:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html\"},\"wordCount\":499,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"keywords\":[\"MicroProfile\",\"OpenAPI\",\"quarkus\",\"Swagger\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html\",\"name\":\"Stylish API - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"datePublished\":\"2020-11-17T08:00:00+00:00\",\"description\":\"In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +). Styling Default\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"java-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/11\\\/stylish-api.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Stylish API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/f24087666e9c716ac25d6c5aceff9a6a\",\"name\":\"Phillip Kruger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/38e989af8597679e556461deb73f4044c27d0228a28f9971d2ac37794b1b8603?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/38e989af8597679e556461deb73f4044c27d0228a28f9971d2ac37794b1b8603?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/38e989af8597679e556461deb73f4044c27d0228a28f9971d2ac37794b1b8603?s=96&d=mm&r=g\",\"caption\":\"Phillip Kruger\"},\"description\":\"Phillip is a software developer and a systems architect who knacks for solving problems. He has a passion for clean code and evolutionary architecture. He blogs about all technical things.\",\"sameAs\":[\"https:\\\/\\\/www.phillip-kruger.com\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/phillipkruger\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/phillip-kruger\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Stylish API - Java Code Geeks","description":"In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +). Styling Default","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html","og_locale":"en_US","og_type":"article","og_title":"Stylish API - Java Code Geeks","og_description":"In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +). Styling Default","og_url":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2020-11-17T08:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","type":"image\/jpeg"}],"author":"Phillip Kruger","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Phillip Kruger","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html"},"author":{"name":"Phillip Kruger","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/f24087666e9c716ac25d6c5aceff9a6a"},"headline":"Stylish API","datePublished":"2020-11-17T08:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html"},"wordCount":499,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","keywords":["MicroProfile","OpenAPI","quarkus","Swagger"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html","url":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html","name":"Stylish API - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","datePublished":"2020-11-17T08:00:00+00:00","description":"In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +). Styling Default","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","width":150,"height":150,"caption":"java-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2020\/11\/stylish-api.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Stylish API"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/f24087666e9c716ac25d6c5aceff9a6a","name":"Phillip Kruger","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/38e989af8597679e556461deb73f4044c27d0228a28f9971d2ac37794b1b8603?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/38e989af8597679e556461deb73f4044c27d0228a28f9971d2ac37794b1b8603?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/38e989af8597679e556461deb73f4044c27d0228a28f9971d2ac37794b1b8603?s=96&d=mm&r=g","caption":"Phillip Kruger"},"description":"Phillip is a software developer and a systems architect who knacks for solving problems. He has a passion for clean code and evolutionary architecture. He blogs about all technical things.","sameAs":["https:\/\/www.phillip-kruger.com\/","https:\/\/www.linkedin.com\/in\/phillipkruger\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/phillip-kruger"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/107645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/10628"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=107645"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/107645\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=107645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=107645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=107645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}