{"id":271,"date":"2025-08-24T09:15:48","date_gmt":"2025-08-24T00:15:48","guid":{"rendered":"https:\/\/i-third.org\/blog\/?p=271"},"modified":"2025-08-24T09:16:06","modified_gmt":"2025-08-24T00:16:06","slug":"react%e3%81%a8java%e3%81%a7%e3%83%95%e3%83%ab%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af%e9%96%8b%e7%99%ba%ef%bc%81%e3%83%a2%e3%83%8e%e3%83%ac%e3%83%9d%e3%81%a8api%e4%bb%95%e6%a7%98%e3%81%ae%e6%b3%a8","status":"publish","type":"post","link":"https:\/\/i-third.org\/blog\/?p=271","title":{"rendered":"React\u3068Java\u3067\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u958b\u767a\uff01\u30e2\u30ce\u30ec\u30dd\u3068API\u4ed5\u69d8\u306e\u6ce8\u610f\u70b9\u3010\u30a8\u30f3\u30b8\u30cb\u30a2\u5fc5\u898b\u3011"},"content":{"rendered":"<p>\nJava\u30b5\u30fc\u30d0\u30fc\u30a8\u30f3\u30b8\u30cb\u30a2\u3068\u3057\u3066\u30ad\u30e3\u30ea\u30a2\u3092\u7bc9\u3044\u3066\u304d\u305f\u7686\u3055\u3093\u3002\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u6280\u8853\u306e\u9032\u5316\u304c\u76ee\u899a\u307e\u3057\u3044\u6628\u4eca\u3001\u300cReact\u3082\u8eab\u306b\u3064\u3051\u305f\u3044\u300d\u300c\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u306b\u306a\u308a\u305f\u3044\u300d\u3068\u8003\u3048\u308b\u4e00\u65b9\u3067\u3001\u3069\u306e\u3088\u3046\u306b\u5b66\u7fd2\u3092\u9032\u3081\u3001\u65e2\u5b58\u306e\u30b9\u30ad\u30eb\u3068\u878d\u5408\u3055\u305b\u308c\u3070\u826f\u3044\u304b\u60a9\u3093\u3067\u3044\u307e\u305b\u3093\u304b\uff1f<\/p>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001<strong>IT\u696d\u754c\u306e\u30b7\u30b9\u30c6\u30e0\u30a8\u30f3\u30b8\u30cb\u30a2\u517c\u30d6\u30ed\u30b0\u7de8\u96c6\u9577<\/strong>\u3067\u3042\u308b\u79c1\u304c\u3001\u9577\u5e74\u306e\u7d4c\u9a13\u3068\u6700\u65b0\u306e\u77e5\u898b\u304b\u3089\u3001React\u3068Java\u3092\u7d44\u307f\u5408\u308f\u305b\u305f<strong>\u300c\u30e2\u30ce\u30ec\u30dd\u958b\u767a\u300d<\/strong>\u3068\u3001\u305d\u306e\u6210\u529f\u306b\u4e0d\u53ef\u6b20\u306a<strong>\u300cAPI\u4ed5\u69d8\u300d<\/strong>\u306b\u3064\u3044\u3066\u3001\u5177\u4f53\u7684\u306a\u624b\u9806\u3068\u6ce8\u610f\u70b9\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u8a18\u4e8b\u3092\u8aad\u3081\u3070\u3001\u3042\u306a\u305f\u306eJava\u30b9\u30ad\u30eb\u3092\u6700\u5927\u9650\u306b\u6d3b\u304b\u3057\u3064\u3064\u3001React\u3068\u3044\u3046\u5f37\u529b\u306a\u6b66\u5668\u3092\u624b\u306b\u5165\u308c\u3001\u5e02\u5834\u4fa1\u5024\u3092\u98db\u8e8d\u7684\u306b\u9ad8\u3081\u308b\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u30ed\u30fc\u30c9\u30de\u30c3\u30d7\u304c\u624b\u306b\u5165\u308a\u307e\u3059\u3002\n<\/p>\n<hr>\n<h2>\u76ee\u6b21<\/h2>\n<ul>\n<li><a href=\"#toc-1\">\u306a\u305c\u4eca\u3001Java\u30b5\u30fc\u30d0\u30fc\u30a8\u30f3\u30b8\u30cb\u30a2\u304cReact\u3092\u5b66\u3076\u3079\u304d\u306a\u306e\u304b\uff1f<\/a><\/li>\n<li><a href=\"#toc-2\">React\u3068Java\u306e\u5171\u5b58\u6226\u7565\uff1a\u30e2\u30ce\u30ec\u30dd\u3068\u3044\u3046\u9078\u629e\u80a2<\/a><\/li>\n<li><a href=\"#toc-3\">\u5b9f\u8df5\uff1a\u30e2\u30ce\u30ec\u30dd\u3067\u958b\u767a\u3092\u59cb\u3081\u308b\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u624b\u9806<\/a><\/li>\n<li><a href=\"#toc-4\">\u958b\u767a\u6210\u529f\u306e\u9375\uff01API\u4ed5\u69d8\u7b56\u5b9a\u306b\u304a\u3051\u308b3\u3064\u306e\u6ce8\u610f\u70b9<\/a><\/li>\n<li><a href=\"#toc-5\">\u307e\u3068\u3081\uff1aReact\u3068Java\u3067\u6700\u5f37\u306e\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u30a8\u30f3\u30b8\u30cb\u30a2\u3078<\/a><\/li>\n<\/ul>\n<hr>\n<h2 id=\"toc-1\">\u306a\u305c\u4eca\u3001Java\u30b5\u30fc\u30d0\u30fc\u30a8\u30f3\u30b8\u30cb\u30a2\u304cReact\u3092\u5b66\u3076\u3079\u304d\u306a\u306e\u304b\uff1f<\/h2>\n<p>\n\u524d\u63d0\u3068\u3057\u3066\u3001Java\u306f\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u958b\u767a\u306b\u304a\u3044\u3066\u4f9d\u7136\u3068\u3057\u3066\u975e\u5e38\u306b\u91cd\u8981\u306a\u8a00\u8a9e\u3067\u3059\u3002\u3057\u304b\u3057\u3001\u73fe\u4ee3\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u300c\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\uff08UI\uff09\u300d\u3068\u300c\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff08\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\uff09\u300d\u304c\u5206\u96e2\u3059\u308b<strong>\u758e\u7d50\u5408\u306a\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3<\/strong>\u304c\u4e3b\u6d41\u3067\u3059\u3002<\/p>\n<p>Java\u30b5\u30fc\u30d0\u30fc\u30a8\u30f3\u30b8\u30cb\u30a2\u304cReact\u3092\u5b66\u3076\u3053\u3068\u306f\u3001\u5358\u306b\u30b9\u30ad\u30eb\u3092\u5897\u3084\u3059\u3060\u3051\u3067\u306a\u304f\u3001\u3053\u306e\u65b0\u3057\u3044\u958b\u767a\u30b9\u30bf\u30a4\u30eb\u3092\u6df1\u304f\u7406\u89e3\u3057\u3001\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3068\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u306e\u9023\u643a\u3092\u5186\u6ed1\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u3078\u306e\u8ca2\u732e\u5ea6\u3092\u9ad8\u3081\u308b\u3053\u3068\u306b\u3064\u306a\u304c\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u3042\u306a\u305f\u306e\u30ad\u30e3\u30ea\u30a2\u3092\u300c\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u5c02\u9580\u300d\u304b\u3089\u300c<strong>\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u306b\u8fd1\u3044\u5c02\u9580\u5bb6<\/strong>\u300d\u3078\u3068\u9032\u5316\u3055\u305b\u308b\u305f\u3081\u306e\u6700\u826f\u306e\u9053\u3067\u3059\u3002\n<\/p>\n<hr>\n<h2 id=\"toc-2\">React\u3068Java\u306e\u5171\u5b58\u6226\u7565\uff1a\u30e2\u30ce\u30ec\u30dd\u3068\u3044\u3046\u9078\u629e\u80a2<\/h2>\n<p>\n\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3068\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3092\u5225\u3005\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u7ba1\u7406\u3059\u308b\u306e\u304c\u4e00\u822c\u7684\u3067\u3059\u304c\u3001\u5c0f\u301c\u4e2d\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u3001UI\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u5171\u6709\u3057\u305f\u3044\u5834\u5408\u306f<strong>\u300c\u30e2\u30ce\u30ec\u30dd\u300d<\/strong>\u304c\u975e\u5e38\u306b\u6709\u52b9\u306a\u958b\u767a\u624b\u6cd5\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u30e2\u30ce\u30ec\u30dd\u3068\u306f\u3001\u8907\u6570\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\uff08\u3053\u306e\u5834\u5408\u3001React\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3068Java\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff09\u3092<strong>\u5358\u4e00\u306eGit\u30ea\u30dd\u30b8\u30c8\u30ea\u3067\u7ba1\u7406<\/strong>\u3059\u308b\u624b\u6cd5\u3067\u3059\u3002\n<\/p>\n<h3>\u30e2\u30ce\u30ec\u30dd\u306e\u30e1\u30ea\u30c3\u30c8<\/h3>\n<ul>\n<li><strong>\u30b3\u30fc\u30c9\u306e\u5171\u6709\u304c\u5bb9\u6613:<\/strong> UI\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3084\u5171\u901a\u306e\u578b\u5b9a\u7fa9\u3092\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30fb\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u9593\u3067\u5171\u6709\u3067\u304d\u307e\u3059\u3002<\/li>\n<li><strong>\u958b\u767a\u8005\u4f53\u9a13\u306e\u5411\u4e0a:<\/strong> \u8907\u6570\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u884c\u304d\u6765\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u3092\u4e00\u5ea6\u306b\u628a\u63e1\u3067\u304d\u307e\u3059\u3002<\/li>\n<li><strong>\u5927\u898f\u6a21\u306a\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u304c\u5bb9\u6613:<\/strong> \u8907\u6570\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u307e\u305f\u304c\u308b\u5909\u66f4\u3082\u5358\u4e00\u306e\u30b3\u30df\u30c3\u30c8\u3067\u884c\u3048\u307e\u3059\u3002<\/li>\n<\/ul>\n<h3>\u5b9f\u8df5\u4f8b\uff1a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u6210<\/h3>\n<p>\nJava\u30b5\u30fc\u30d0\u30fc\u3068React\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30e2\u30ce\u30ec\u30dd\u3067\u7ba1\u7406\u3059\u308b\u969b\u3001\u4e00\u822c\u7684\u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u306b\u306a\u308a\u307e\u3059\u3002\n<\/p>\n<pre>\n\/project-monorepo\n\/apps\n\/web         # React\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\n\/api         # Spring Boot\u306a\u3069Java\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\n\/packages\n\/common-models # \u5171\u901a\u306e\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\uff08JSON\u30b9\u30ad\u30fc\u30de\u306a\u3069\uff09\n<\/pre>\n<p>\n\u3053\u306e\u69cb\u6210\u3067\u306f\u3001<code>web<\/code>\u3068<code>api<\/code>\u304c\u305d\u308c\u305e\u308c\u72ec\u7acb\u3057\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u3057\u3066\u6a5f\u80fd\u3057\u3001<code>common-models<\/code>\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5171\u6709\u3059\u308b\u3053\u3068\u3067\u3001API\u306e\u5165\u51fa\u529b\u30c7\u30fc\u30bf\u306e\u5b9a\u7fa9\u3092\u7d71\u4e00\u3067\u304d\u307e\u3059\u3002\n<\/p>\n<hr>\n<h2 id=\"toc-3\">\u5b9f\u8df5\uff1a\u30e2\u30ce\u30ec\u30dd\u3067\u958b\u767a\u3092\u59cb\u3081\u308b\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u624b\u9806<\/h2>\n<p>\n\u3053\u3053\u3067\u306f\u3001\u6700\u3082\u30b7\u30f3\u30d7\u30eb\u306a\u30e2\u30ce\u30ec\u30dd\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u624b\u9806\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002\n<\/p>\n<ol>\n<li><strong>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u521d\u671f\u5316:<\/strong> Monorepo\u30c4\u30fc\u30eb\uff08\u4f8b\uff1a<strong>Turborepo<\/strong>\u3084<strong>Nx<\/strong>\uff09\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u521d\u671f\u5316\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u9593\u306e\u4f9d\u5b58\u95a2\u4fc2\u7ba1\u7406\u3084\u30d3\u30eb\u30c9\u306e\u9ad8\u901f\u5316\u3092\u81ea\u52d5\u5316\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/li>\n<li><strong>Java\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210:<\/strong> <code>apps\/api<\/code>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u3001Maven\u3084Gradle\u3092\u4f7f\u3063\u3066Spring Boot\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<li><strong>React\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210:<\/strong> <code>apps\/web<\/code>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u3001Vite\u3084Next.js\u3092\u4f7f\u3063\u3066React\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<li><strong>\u5171\u901a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f5c\u6210:<\/strong> <code>packages\/common-models<\/code>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3001\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3068\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3067\u5171\u901a\u3057\u3066\u4f7f\u3046\u30e2\u30c7\u30eb\uff08\u4f8b\uff1a\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3084\u5546\u54c1\u60c5\u5831\uff09\u306e\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\uff08\u4f8b\uff1aTypeScript\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\uff09\u3092\u914d\u7f6e\u3057\u307e\u3059\u3002<\/li>\n<li><strong>\u4f9d\u5b58\u95a2\u4fc2\u306e\u8a2d\u5b9a:<\/strong> \u5404\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e<code>package.json<\/code>\uff08React\u5074\uff09\u3068<code>pom.xml<\/code>\uff08Java\u5074\uff09\u3067\u3001\u5171\u901a\u30d1\u30c3\u30b1\u30fc\u30b8\u3078\u306e\u4f9d\u5b58\u95a2\u4fc2\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n<p>\n\u3053\u306e\u624b\u9806\u3092\u8e0f\u3080\u3053\u3068\u3067\u3001\u305d\u308c\u305e\u308c\u306e\u958b\u767a\u74b0\u5883\u3092\u72ec\u7acb\u3055\u305b\u3064\u3064\u3001\u30b3\u30fc\u30c9\u306e\u5171\u6709\u3068\u3044\u3046\u30e2\u30ce\u30ec\u30dd\u306e\u6069\u6075\u3092\u6700\u5927\u9650\u306b\u4eab\u53d7\u3067\u304d\u307e\u3059\u3002\n<\/p>\n<hr>\n<h2 id=\"toc-4\">\u958b\u767a\u6210\u529f\u306e\u9375\uff01API\u4ed5\u69d8\u7b56\u5b9a\u306b\u304a\u3051\u308b3\u3064\u306e\u6ce8\u610f\u70b9<\/h2>\n<p>\n\u30e2\u30ce\u30ec\u30dd\u958b\u767a\u3092\u6210\u529f\u3055\u305b\u308b\u305f\u3081\u306b\u306f\u3001\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3068\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u9593\u306e\u901a\u4fe1\u898f\u7d04\u3067\u3042\u308bAPI\u4ed5\u69d8\u3092\u660e\u78ba\u306b\u3059\u308b\u3053\u3068\u304c\u6700\u3082\u91cd\u8981\u3067\u3059\u3002\n<\/p>\n<h3>\u6ce8\u610f\u70b91\uff1aRESTful\u306a\u8a2d\u8a08\u3092\u5fb9\u5e95\u3059\u308b<\/h3>\n<p>\n<strong>RESTful API<\/strong>\u306e\u539f\u5247\uff08\u30ea\u30bd\u30fc\u30b9\u6307\u5411\u3001\u30b9\u30c6\u30fc\u30c8\u30ec\u30b9\u3001\u7d71\u4e00\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\uff09\u306b\u5f93\u3044\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u8a2d\u8a08\u3057\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u306a\u3089<code>GET \/api\/users\/{id}<\/code>\u3001\u66f4\u65b0\u3059\u308b\u306a\u3089<code>PUT \/api\/users\/{id}<\/code>\u3068\u3001\u64cd\u4f5c\u5185\u5bb9\u304cURL\u3084HTTP\u30e1\u30bd\u30c3\u30c9\u304b\u3089\u660e\u78ba\u306b\u308f\u304b\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30a8\u30f3\u30b8\u30cb\u30a2\u306fAPI\u306e\u69cb\u9020\u3092\u76f4\u611f\u7684\u306b\u7406\u89e3\u3057\u3084\u3059\u304f\u306a\u308a\u3001\u958b\u767a\u52b9\u7387\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002\n<\/p>\n<h3>\u6ce8\u610f\u70b92\uff1aJSON\u30b9\u30ad\u30fc\u30de\u3092\u53b3\u5bc6\u306b\u5b9a\u7fa9\u3059\u308b<\/h3>\n<p>\n\u30ea\u30af\u30a8\u30b9\u30c8\u30fb\u30ec\u30b9\u30dd\u30f3\u30b9\u306e<strong>JSON\u30c7\u30fc\u30bf\u69cb\u9020\uff08\u30b9\u30ad\u30fc\u30de\uff09<\/strong>\u3092\u53b3\u5bc6\u306b\u5b9a\u7fa9\u3057\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3057\u307e\u3059\u3002TypeScript\u306a\u3069\u306e\u578b\u5b9a\u7fa9\u8a00\u8a9e\u3092\u5171\u6709\u3059\u308b\u3053\u3068\u3067\u3001\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3067\u306e\u578b\u30c1\u30a7\u30c3\u30af\u304c\u53ef\u80fd\u306b\u306a\u308a\u3001\u5b9f\u884c\u6642\u30a8\u30e9\u30fc\u3092\u672a\u7136\u306b\u9632\u3050\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><strong>\u5b9f\u8df5\u4f8b:<\/strong>\n<\/p>\n<pre>\n\/\/ common-models\/User.ts (TypeScript)\nexport interface User {\nid: number;\nname: string;\nemail: string;\n}\n<\/pre>\n<p>\nJava\u5074\u3067\u306f\u3001\u3053\u306eTypeScript\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u5bfe\u5fdc\u3059\u308bJava\u306e\u30af\u30e9\u30b9\uff08POJO\uff09\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002\n<\/p>\n<h3>\u6ce8\u610f\u70b93\uff1aOpenAPI\uff08Swagger\uff09\u3067\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u81ea\u52d5\u751f\u6210\u3059\u308b<\/h3>\n<p>\n\u624b\u52d5\u3067\u306eAPI\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u4f5c\u6210\u306f\u3001\u4ed5\u69d8\u5909\u66f4\u6642\u306b\u66f4\u65b0\u304c\u6f0f\u308c\u304c\u3061\u3067\u3059\u3002Java\uff08Spring Boot\uff09\u3067\u306f\u3001<strong>Springdoc-openapi<\/strong>\u306a\u3069\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3046\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306b\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u4ed8\u52a0\u3059\u308b\u3060\u3051\u3067\u3001<strong>OpenAPI\uff08Swagger\uff09\u5f62\u5f0f\u306eAPI\u4ed5\u69d8\u66f8\u3092\u81ea\u52d5\u751f\u6210<\/strong>\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u9bae\u5ea6\u3092\u4fdd\u3061\u3001\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30c1\u30fc\u30e0\u306f\u5e38\u306b\u6700\u65b0\u306eAPI\u60c5\u5831\u3092\u53c2\u7167\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\n<\/p>\n<hr>\n<h2 id=\"toc-5\">\u307e\u3068\u3081\uff1aReact\u3068Java\u3067\u6700\u5f37\u306e\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u30a8\u30f3\u30b8\u30cb\u30a2\u3078<\/h2>\n<p>\nReact\u3068Java\u306e\u7d44\u307f\u5408\u308f\u305b\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u975e\u5e38\u306b\u5f37\u529b\u306a\u9078\u629e\u80a2\u3067\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u7d39\u4ecb\u3057\u305f\u30e2\u30ce\u30ec\u30dd\u306b\u3088\u308b\u958b\u767a\u4f53\u5236\u3068\u3001API\u4ed5\u69d8\u306e\u53b3\u5bc6\u306a\u7ba1\u7406\u306f\u3001\u3053\u306e\u6280\u8853\u30b9\u30bf\u30c3\u30af\u3092\u6210\u529f\u3055\u305b\u308b\u305f\u3081\u306e\u91cd\u8981\u306a\u9375\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>Java\u30b5\u30fc\u30d0\u30fc\u30a8\u30f3\u30b8\u30cb\u30a2\u3068\u3057\u3066\u306e\u5805\u7262\u306a\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u958b\u767a\u30b9\u30ad\u30eb\u306b\u3001React\u306e\u67d4\u8edf\u306a\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u958b\u767a\u30b9\u30ad\u30eb\u304c\u52a0\u308f\u308c\u3070\u3001\u3042\u306a\u305f\u306f\u5358\u306a\u308b\u300c\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u300d\u306e\u67a0\u3092\u8d85\u3048\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u306e\u8a2d\u8a08\u304b\u3089\u5b9f\u88c5\u307e\u3067\u3092\u62c5\u3048\u308b\u3001\u5e02\u5834\u304b\u3089\u6c42\u3081\u3089\u308c\u308b\u6700\u5f37\u306e\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u30a8\u30f3\u30b8\u30cb\u30a2\u3078\u3068\u9032\u5316\u3067\u304d\u308b\u3067\u3057\u3087\u3046\u3002\n<\/p>\n<hr>\n<p>\n<a href=\"#\"><strong>\u2192 \u4ed6\u306e\u6280\u8853\u8a18\u4e8b\u3082\u30c1\u30a7\u30c3\u30af\u3059\u308b<\/strong><\/a><br \/>\n<a href=\"#\"><strong>\u2192 \u7b46\u8005\u306eTwitter\u3092\u30d5\u30a9\u30ed\u30fc\u3057\u3066\u6700\u65b0\u60c5\u5831\u3092\u30b2\u30c3\u30c8\uff01<\/strong><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java\u30b5\u30fc\u30d0\u30fc\u30a8\u30f3\u30b8\u30cb\u30a2\u3068\u3057\u3066\u30ad\u30e3\u30ea\u30a2\u3092\u7bc9\u3044\u3066\u304d\u305f\u7686\u3055\u3093\u3002\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u6280\u8853\u306e\u9032\u5316\u304c\u76ee\u899a\u307e\u3057\u3044\u6628\u4eca\u3001\u300cReact\u3082\u8eab\u306b\u3064\u3051\u305f\u3044\u300d\u300c\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u306b\u306a\u308a\u305f\u3044\u300d\u3068\u8003\u3048\u308b\u4e00\u65b9\u3067\u3001\u3069\u306e\u3088\u3046\u306b\u5b66\u7fd2\u3092\u9032\u3081\u3001\u65e2\u5b58\u306e\u30b9\u30ad\u30eb\u3068\u878d\u5408\u3055\u305b\u308c\u3070&hellip;<\/p>\n","protected":false},"author":1,"featured_media":273,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7],"tags":[],"class_list":["post-271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-4","category-7"],"_links":{"self":[{"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=271"}],"version-history":[{"count":1,"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/271\/revisions"}],"predecessor-version":[{"id":272,"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/271\/revisions\/272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=\/wp\/v2\/media\/273"}],"wp:attachment":[{"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i-third.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}