{"id":18672599,"url":"https://github.com/dimmaryanto93/springboot-swagger2-example","last_synced_at":"2026-05-14T12:31:23.412Z","repository":{"id":107985052,"uuid":"133678347","full_name":"dimMaryanto93/springboot-swagger2-example","owner":"dimMaryanto93","description":"Rest API Documentation menggunakan Swagger2 UI","archived":false,"fork":false,"pushed_at":"2018-05-16T15:53:14.000Z","size":300,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-21T02:02:11.815Z","etag":null,"topics":["rest-api","restful-webservices","spring-boot","swagger-ui","swagger2"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimMaryanto93.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-16T14:30:27.000Z","updated_at":"2018-05-16T15:53:15.000Z","dependencies_parsed_at":"2024-07-09T23:07:10.215Z","dependency_job_id":null,"html_url":"https://github.com/dimMaryanto93/springboot-swagger2-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dimMaryanto93/springboot-swagger2-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimMaryanto93%2Fspringboot-swagger2-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimMaryanto93%2Fspringboot-swagger2-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimMaryanto93%2Fspringboot-swagger2-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimMaryanto93%2Fspringboot-swagger2-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimMaryanto93","download_url":"https://codeload.github.com/dimMaryanto93/springboot-swagger2-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimMaryanto93%2Fspringboot-swagger2-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33024889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rest-api","restful-webservices","spring-boot","swagger-ui","swagger2"],"created_at":"2024-11-07T09:12:23.192Z","updated_at":"2026-05-14T12:31:23.375Z","avatar_url":"https://github.com/dimMaryanto93.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Documentation Rest API with Swagger2\n\nMembuat dokumentasi buat programmer itu kayak nulis cepen butuh waktu yang gak sedikit, nah maka dari itu ada fitur untuk membuat simple dokumentasi yang lumayan bagus di Springboot atau berbasis Spring Web MVC.\n\n## Dependency\n\nDependency yang dibutuhkan atau yang harus ditambahkan di file `pom.xml` yaitu seperti berikut:\n\n```xml\n\u003cdependencies\u003e\n    \u003c!--dependencies lainnya... disini--\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.springfox\u003c/groupId\u003e\n        \u003cartifactId\u003espringfox-swagger2\u003c/artifactId\u003e\n        \u003cversion\u003e2.8.0\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.springfox\u003c/groupId\u003e\n        \u003cartifactId\u003espringfox-swagger-ui\u003c/artifactId\u003e\n        \u003cversion\u003e2.8.0\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.springfox\u003c/groupId\u003e\n        \u003cartifactId\u003espringfox-bean-validators\u003c/artifactId\u003e\n        \u003cversion\u003e2.8.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n## Configuration Spring Web MVC\n\n```java \n@SpringBootApplication\n@EnableSwagger2\n@Import(BeanValidatorPluginsConfiguration.class)\npublic class SwaggerUIApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(SwaggerUIApplication.class, args);\n    }\n\n    @Bean\n    public Docket apiDocket() {\n        return new Docket(DocumentationType.SWAGGER_2)\n                .select()\n                .apis(RequestHandlerSelectors.any())\n                .paths(PathSelectors.any())\n                .build()\n                .apiInfo(getApiInfo());\n    }\n\n    private ApiInfo getApiInfo() {\n        return new ApiInfo(\n                \"TITLE\",\n                \"DESCIPRION\",\n                \"VERSION\",\n                \"TERMS OF SERVICE URL\",\n                new Contact(\"NAME\", \"URL\", \"EMAIL\"),\n                \"LICENSE\",\n                \"LICENSE URL\",\n                Collections.emptyList()\n        );\n    }\n}\n```\n\n## Cara menggunakan \n\n```java \n@RestController\n@RequestMapping(\"/api/person\")\n@Api(description = \"Api untuk person\")\npublic class PersonApi {\n\n    @ApiOperation(\"Return new person\")\n    @GetMapping(value = \"/{id}\", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)\n    public Person getPerson(@ApiParam(value = \"id person\", required = true) @PathVariable Integer id) {\n        return new Person(1, \"Dimas\", \"Maryanto\");\n    }\n\n    @ApiOperation(\"Return list person\")\n    @GetMapping(value = \"/listPerson\", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)\n    public List\u003cPerson\u003e listPerson() {\n        return Arrays.asList(\n                new Person(1, \"Dimas\", \"Maryanto\"),\n                new Person(2, \"Muhamad\", \"Yusuf\"),\n                new Person(2, \"Rega\", \"Rusti\"),\n                new Person(2, \"Haidi\", \"Gufron\")\n        );\n    }\n\n    @ApiOperation(\"Save a person\")\n    @PostMapping(\n            value = \"/aPerson\",\n            produces = MediaType.APPLICATION_JSON_UTF8_VALUE,\n            consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)\n    public Person getPerson(\n            @ApiParam(value = \"Person information for a new person to be created.\", required = true, format = \"application/json\")\n            @RequestBody Person person,\n            @ApiParam(value = \"Grade status like A | B | C | D | E\", required = true)\n            @RequestParam(required = false) Integer grade\n    ) {\n        return person;\n    }\n}\n```\n\n## Review the documentation\n\nBerikut adalah cara menggunakan swagger-ui, dengan cara run project ini.\n\n```bash\nmvn clean spring-boot:run\n```\n\nSetelah project run, anda bisa browse [localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)\n\nMaka tampilannya seperti berikut:\n\n![swagger-ui.html](imgs/swagger-ui.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimmaryanto93%2Fspringboot-swagger2-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdimmaryanto93%2Fspringboot-swagger2-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimmaryanto93%2Fspringboot-swagger2-example/lists"}