{"id":3277,"date":"2025-11-12T15:56:14","date_gmt":"2025-11-12T08:56:14","guid":{"rendered":"https:\/\/portal-atlasx.cdg.co.th\/home\/?post_type=docs&#038;p=3277"},"modified":"2025-11-12T15:56:14","modified_gmt":"2025-11-12T08:56:14","slug":"how-the-dataparser-work","status":"publish","type":"docs","link":"https:\/\/portal-atlasx.cdg.co.th\/home\/docs\/atlasx-web-application\/backend\/how-the-dataparser-work\/","title":{"rendered":"How the DataParser work"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"how-the-dataparser-work\">How the DataParser work<\/h1>\n\n\n\n<p><a href=\"https:\/\/portal-atlasx.cdg.co.th\/#\">DataParser<\/a>&nbsp;\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e0a\u0e48\u0e27\u0e22\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01 Rest API \u0e08\u0e32\u0e01\u0e41\u0e2d\u0e1e\u0e2f Client \u0e44\u0e1b\u0e22\u0e31\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a\u0e44\u0e14\u0e49 \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e08\u0e33\u0e01\u0e31\u0e14\u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48\u0e17\u0e33\u0e43\u0e2b\u0e49 Client \u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e23\u0e35\u0e22\u0e01\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07 \u0e40\u0e0a\u0e48\u0e19 Firewall \u0e08\u0e33\u0e01\u0e31\u0e14\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e02\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22 IP Address, \u0e40\u0e27\u0e47\u0e1a\u0e1a\u0e23\u0e32\u0e27\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e01\u0e32\u0e23 Request \u0e02\u0e49\u0e32\u0e21\u0e42\u0e1b\u0e23\u0e42\u0e15\u0e04\u0e2d\u0e25&nbsp;<code>http<\/code>&nbsp;\u0e44\u0e1b\u0e22\u0e31\u0e07&nbsp;<code>https<\/code>&nbsp;\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e01\u0e34\u0e14\u0e01\u0e32\u0e23&nbsp;<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/CORS\" target=\"_blank\" rel=\"noreferrer noopener\">Cross-Origin Resource Sharing (CORS)<\/a>&nbsp;\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h5 class=\"wp-block-heading\">Note<\/h5>\n\n\n\n<p>\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49 Url \u0e02\u0e2d\u0e07\u0e41\u0e15\u0e48\u0e25\u0e30 Tier \u0e40\u0e1b\u0e47\u0e19\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Frontend:\u00a0<a href=\"http:\/\/localhost:4200\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost:4200<\/a><\/li>\n\n\n\n<li>Backend:\u00a0<a href=\"https:\/\/localhost:5003\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/localhost:5003<\/a><\/li>\n\n\n\n<li>Web service:\u00a0<a href=\"https:\/\/localhost:5001\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/localhost:5001<\/a><\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<p>\u0e2b\u0e32\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e04\u0e2d\u0e19\u0e1f\u0e34\u0e01\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e1a\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e32\u0e21\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e44\u0e14\u0e49\u0e14\u0e31\u0e07\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/portal-atlasx.cdg.co.th\/#\">\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/portal-atlasx.cdg.co.th\/#\">\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e2d\u0e1e\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e48\u0e19<\/a><\/li>\n\n\n\n<li>\u0e17\u0e35\u0e48\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a \u0e41\u0e01\u0e49\u0e44\u0e02\u0e04\u0e2d\u0e19\u0e1f\u0e34\u0e01\u00a0<code>Issuer<\/code>\u00a0\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c\u00a0<code>appsettings.Development.json<\/code>\u00a0\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32\u00a0<a href=\"https:\/\/localhost:5003\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/localhost:5003<\/a><\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>{\n  ...,\n  \"WebServiceSettings\": {\n    ...,\n    \"OAuth\": {\n      \"AccessTokenExpires\": 300,\n      \"RefreshTokenExpires\": 604800,\n      \"AuthorizationCodeExpires\": 300,\n      \"Issuer\": \"https:\/\/localhost:5003\", \/\/ &lt;&lt;&lt; Edit value\n      \"SecretKey\": \"kaq5ehRJFtPZrUBOhpif4U6+cuqpAkLCAds8K52FkuXyIcgBCkeBRBchU+b\/I5xz\",\n      \"MultiRefreshToken\": true\n    },\n    ...\n  },\n  \"telerikReporting\": {\n    ...\n  }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  ...,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #A31515\">&quot;WebServiceSettings&quot;<\/span><span style=\"color: #000000\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ...,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #A31515\">&quot;OAuth&quot;<\/span><span style=\"color: #001080\">:<\/span><span style=\"color: #000000\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #A31515\">&quot;AccessTokenExpires&quot;<\/span><span style=\"color: #001080\">:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">300<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #A31515\">&quot;RefreshTokenExpires&quot;<\/span><span style=\"color: #001080\">:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">604800<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #A31515\">&quot;AuthorizationCodeExpires&quot;<\/span><span style=\"color: #001080\">:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">300<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #A31515\">&quot;Issuer&quot;<\/span><span style=\"color: #001080\">:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&quot;https:\/\/localhost:5003&quot;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #008000\">\/\/ &lt;&lt;&lt; Edit value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #A31515\">&quot;SecretKey&quot;<\/span><span style=\"color: #001080\">:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&quot;kaq5ehRJFtPZrUBOhpif4U6+cuqpAkLCAds8K52FkuXyIcgBCkeBRBchU+b\/I5xz&quot;<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      <\/span><span style=\"color: #A31515\">&quot;MultiRefreshToken&quot;<\/span><span style=\"color: #001080\">:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #A31515\">&quot;telerikReporting&quot;<\/span><span style=\"color: #000000\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u0e17\u0e35\u0e48\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e2d\u0e1e\u0e2f \u0e43\u0e19\u0e42\u0e1f\u0e25\u0e4c\u0e40\u0e14\u0e2d\u0e23\u0e4c ClientApp \u0e41\u0e01\u0e49\u0e44\u0e02\u0e04\u0e2d\u0e19\u0e1f\u0e34\u0e01\u00a0<code>webServiceUrl<\/code>\u00a0\u0e41\u0e25\u0e30\u00a0<code>callbackUri<\/code>\u00a0\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c\u00a0<code>environments\\environment.ts<\/code>\u00a0\u0e15\u0e32\u0e21\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import { AxAuthenticationConfig } from '@atlasx\/core\/authentication'\nimport { ApplicationConfig } from '..\/app\/core\/config\/application.config'\n\n\/\/ This file can be replaced during build by using the `fileReplacements` array.\n\/\/ `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n\/\/ The list of file replacements can be found in `angular.json`.\n\nexport const environment: ApplicationConfig &amp; AxAuthenticationConfig = {\n  production: false,\n  webServiceUrl: 'https:\/\/localhost:5003', \/\/ &lt;&lt;&lt; Edit value\n\n  \/\/ OAuth client information.\n  clientId: 'atlasx-web-application',\n  clientSecret: '02FZf68\/Xff0hrSQgc7Je5CNgdjaSgltNU4gb3AbJ9A=',\n\n  \/\/ When use full secure authentication, application are required\n  \/\/ the callbackUri property.\n  fullSecureAuthentication: true,\n  callbackUri: 'https:\/\/localhost:5003\/callback', \/\/ &lt;&lt;&lt; Edit value\n\n  \/\/ Other configuration below here\n  \/\/ ...\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #AF00DB\">import<\/span><span style=\"color: #000000\"> { <\/span><span style=\"color: #001080\">AxAuthenticationConfig<\/span><span style=\"color: #000000\"> } <\/span><span style=\"color: #AF00DB\">from<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&#39;@atlasx\/core\/authentication&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">import<\/span><span style=\"color: #000000\"> { <\/span><span style=\"color: #001080\">ApplicationConfig<\/span><span style=\"color: #000000\"> } <\/span><span style=\"color: #AF00DB\">from<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&#39;..\/app\/core\/config\/application.config&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/ This file can be replaced during build by using the `fileReplacements` array.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/ `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #008000\">\/\/ The list of file replacements can be found in `angular.json`.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #AF00DB\">export<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">const<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0070C1\">environment<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">ApplicationConfig<\/span><span style=\"color: #000000\"> &amp; <\/span><span style=\"color: #267F99\">AxAuthenticationConfig<\/span><span style=\"color: #000000\"> = {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">production:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">false<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">webServiceUrl:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&#39;https:\/\/localhost:5003&#39;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #008000\">\/\/ &lt;&lt;&lt; Edit value<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #008000\">\/\/ OAuth client information.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">clientId:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&#39;atlasx-web-application&#39;<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">clientSecret:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&#39;02FZf68\/Xff0hrSQgc7Je5CNgdjaSgltNU4gb3AbJ9A=&#39;<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #008000\">\/\/ When use full secure authentication, application are required<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #008000\">\/\/ the callbackUri property.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">fullSecureAuthentication:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">true<\/span><span style=\"color: #000000\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">callbackUri:<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #A31515\">&#39;https:\/\/localhost:5003\/callback&#39;<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #008000\">\/\/ &lt;&lt;&lt; Edit value<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #008000\">\/\/ Other configuration below here<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #008000\">\/\/ ...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>\u0e40\u0e1b\u0e34\u0e14 Terminal \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 3 \u0e15\u0e31\u0e27<\/li>\n\n\n\n<li>Terminal \u0e15\u0e31\u0e27\u0e41\u0e23\u0e01 \u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a \u0e42\u0e14\u0e22\u0e22\u0e49\u0e32\u0e22\u0e42\u0e1f\u0e25\u0e4c\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$ dotnet run<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">dotnet<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">run<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol start=\"7\" class=\"wp-block-list\">\n<li>Terminal \u0e15\u0e31\u0e27\u0e17\u0e35\u0e48\u0e2a\u0e2d\u0e07 \u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e2d\u0e1e\u0e2f \u0e1d\u0e31\u0e48\u0e07 Back-end \u0e42\u0e14\u0e22\u0e22\u0e49\u0e32\u0e22\u0e42\u0e1f\u0e25\u0e4c\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e2d\u0e1e\u0e2f \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$ cd .\/ServerApp\n$ dotnet run<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">cd<\/span><span style=\"color: #000000\"> .\/<\/span><span style=\"color: #001080\">ServerApp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">dotnet<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">run<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol start=\"8\" class=\"wp-block-list\">\n<li>Terminal \u0e15\u0e31\u0e27\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21 \u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e2d\u0e1e\u0e2f \u0e1d\u0e31\u0e48\u0e07 Front-end \u0e42\u0e14\u0e22\u0e22\u0e49\u0e32\u0e22\u0e42\u0e1f\u0e25\u0e4c\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e2d\u0e1e\u0e2f \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$ cd .\/ClientApp\n$ dotnet run<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">cd<\/span><span style=\"color: #000000\"> .\/<\/span><span style=\"color: #001080\">ClientApp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">dotnet<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">run<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol start=\"9\" class=\"wp-block-list\">\n<li>\u0e40\u0e1b\u0e34\u0e14\u0e40\u0e27\u0e47\u0e1a\u0e1a\u0e23\u0e32\u0e27\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e49\u0e27\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e17\u0e35\u0e48\u00a0<a href=\"https:\/\/localhost:5003\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/localhost:5003<\/a>\u00a0\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e25\u0e2d\u0e07\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e40\u0e25\u0e48\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e2d\u0e1e\u0e2f<\/li>\n\n\n\n<li>\u0e40\u0e1b\u0e34\u0e14 Dev Tools \u0e02\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e1a\u0e23\u0e32\u0e27\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e49\u0e27\u0e25\u0e2d\u0e07\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e41\u0e17\u0e47\u0e1a Network \u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01 Rest API \u0e44\u0e1b\u0e22\u0e31\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a\u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e23\u0e35\u0e22\u0e01\u0e1c\u0e48\u0e32\u0e19 Url \u0e02\u0e2d\u0e07 Back-end \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14<\/li>\n<\/ol>\n","protected":false},"featured_media":0,"parent":3272,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nav_title":"","positive":"","negative":"","footnotes":""},"docs_category":[],"class_list":["post-3277","docs","type-docs","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/comments?post=3277"}],"version-history":[{"count":1,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3277\/revisions"}],"predecessor-version":[{"id":3278,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3277\/revisions\/3278"}],"up":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3272"}],"wp:attachment":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/media?parent=3277"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs_category?post=3277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}