{"id":15138471,"url":"https://github.com/smolthing/backend-vertx","last_synced_at":"2026-02-18T05:36:52.113Z","repository":{"id":178146879,"uuid":"661391592","full_name":"smolthing/backend-vertx","owner":"smolthing","description":"gRPC and HTTP services using vert.x","archived":false,"fork":false,"pushed_at":"2023-08-20T18:09:25.000Z","size":128,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T10:17:55.584Z","etag":null,"topics":["backend","java","mysql","vertx"],"latest_commit_sha":null,"homepage":"","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/smolthing.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":"2023-07-02T17:40:46.000Z","updated_at":"2024-04-14T14:41:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"f5fe5f44-6c8c-4e12-92ac-6b0b77167d6a","html_url":"https://github.com/smolthing/backend-vertx","commit_stats":null,"previous_names":["smolthing/backend","smolthing/backend-vertx"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/smolthing/backend-vertx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smolthing%2Fbackend-vertx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smolthing%2Fbackend-vertx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smolthing%2Fbackend-vertx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smolthing%2Fbackend-vertx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smolthing","download_url":"https://codeload.github.com/smolthing/backend-vertx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smolthing%2Fbackend-vertx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29569857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T04:18:28.490Z","status":"ssl_error","status_checked_at":"2026-02-18T04:13:49.018Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["backend","java","mysql","vertx"],"created_at":"2024-09-26T07:24:19.864Z","updated_at":"2026-02-18T05:36:47.103Z","avatar_url":"https://github.com/smolthing.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend\n\n### Getting Started\n\n```\n./gradlew clean run\n```\n\nLaunch the tests:\n\n```\n./gradlew clean test\n```\n\nPackage your application:\n\n```\n./gradlew clean assemble\n```\n\n### HTTP API\n\nGo to http://localhost:8000.\n\n#### GET `/ping``\n\nHealthcheck\n\n```\ncurl -i -H 'accept: application/json' http://localhost:8000/ping\n```\n\nResponse\n\n```\n{\n    \"status\": \"UP\",\n    \"checks\": [\n        {\n            \"id\": \"App connection\",\n            \"status\": \"UP\"\n        }\n    ],\n    \"outcome\": \"UP\"\n}\n```\n\n#### GET `/users/:id`\n\nGet user by id\n\n```\ncurl -i -H 'accept: application/json' http://localhost:8000/users/1\n```\n\nResponse\n\n```\n{\n  \"id\": 1,\n  \"name\": \"smol\"\n}\n```\n\n### gRPC API\n\nGo to http://localhost:9000.\n\nUse protobuf schema from [User.proto](./src/main/proto/User.proto).\n\n```\nservice UserService {\n  rpc GetUser (GetUserRequest) returns (GetUserResponse) {}\n}\n\nmessage User {\n  int64 id = 1;\n  string name = 2;\n}\nmessage GetUserRequest {\n  int64 id = 1;\n}\n\nmessage GetUserResponse {\n  User user = 1;\n}\n```\n\n#### GetUser\n\nGetUserRequest\n\n```\n{ \"id\": 1 }\n```\n\nGetUserResponse\n\n```\n{\n    \"user\": {\n        \"id\": \"1\",\n        \"name\": \"smol\"\n    }\n}\n```\n\n### MySQL database\n\nGo to http://localhost:3306.\n\n#### Set up a database using docker.\n\nRun mysql container:\n\n```\ndocker run --name backend-mysql -d \\\n-p 3306:3306 \\\n-e MYSQL_ROOT_PASSWORD=password \\\n-v mysql:/var/lib/mysql \\\nmysql:8\n```\n\nCreate database and table:\n\n```\ndocker exec -it backend-mysql bash\ncreate database backend;\nuse backend;\n\nCREATE TABLE IF NOT EXISTS `user` (\n    `id` BINARY(16) PRIMARY KEY NOT NULL DEFAULT (UUID_TO_BIN(UUID())),\n    `account_id` BIGINT(20) NOT NULL,\n    `name` VARCHAR(255) NOT NULL,\n    `created_at` DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3),\n    `updated_at` DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),\n    UNIQUE KEY `unique_name_index` (`account_id`, `name`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;\nINSERT INTO `user` (`account_id`, `name`)VALUES (1, \"smol\");\n```\n\n#### Database Schema\n\nuser\n\n| Column     | Type         | Not Null | Default                                       | Description                                                                     |\n|------------|--------------|----------|-----------------------------------------------|---------------------------------------------------------------------------------|\n| id         | binary       | yes      | UUID in binary format                         | The ID of the user. This is 128-bit UUID stored in 16-bit binary format.        |\n| account_id | bigint(20)   | yes      |                                               | The name of the user. This is a string with a maximum length of 255 characters. |\n| name       | varchar(255) | yes      |                                               | The name of the user. This is a string with a maximum length of 255 characters. |\n| created_at | datetime     | yes      | CURRENT_TIMESTAMP                             | The date and time the user was created.                                         |\n| updated_at | datetime     | yes      | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | The date and time the user was last updated.                                    |\n\n#### Database migration\n\n[Migrations](./src/main/resources/db/migrations), [Seeds](./src/main/resources/db/seeds)\n\n## Documentation\n\nPart 1. https://dev.to/smolthing/build-web-application-in-vertx-part-1-3jc4[Build web application in\nVert.x]\ngit log\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmolthing%2Fbackend-vertx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmolthing%2Fbackend-vertx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmolthing%2Fbackend-vertx/lists"}