{"id":11748,"date":"2026-07-09T18:21:34","date_gmt":"2026-07-09T10:21:34","guid":{"rendered":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/"},"modified":"2026-07-09T18:21:34","modified_gmt":"2026-07-09T10:21:34","slug":"from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2","status":"publish","type":"post","link":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/","title":{"rendered":"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs"},"content":{"rendered":"<p data-nodeid=\"29401\">H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 d\u1eabn d\u1eaft b\u1ea1n qua to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1ea1o c\u00e1c bi\u1ec3u \u0111\u1ed3 chuy\u00ean nghi\u1ec7p b\u1eb1ng c\u00fa ph\u00e1p Mermaid trong VPasCode v\u00e0 xu\u1ea5t b\u1ea3n ch\u00fang m\u1ed9t c\u00e1ch li\u1ec1n m\u1ea1ch v\u00e0o c\u01a1 s\u1edf ki\u1ebfn th\u1ee9c c\u1ee7a b\u1ea1n tr\u00ean OpenDocs. Ch\u00fang t\u00f4i s\u1ebd bao g\u1ed3m to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1eeb thi\u1ebft l\u1eadp \u0111\u1ebfn xu\u1ea5t b\u1ea3n, k\u00e8m theo c\u00e1c v\u00ed d\u1ee5 th\u1ef1c t\u1ebf v\u00e0 s\u1eb5n s\u00e0ng s\u1eed d\u1ee5ng.<\/p>\n<p id=\"cCkoiOv\"><img alt=\"T\u1eeb Bi\u1ec3u \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng M\u00e3 \u0111\u1ebfn Xu\u1ea5t b\u1ea3n M\u1edf: Quy tr\u00ecnh l\u00e0m vi\u1ec7c VPasCode + OpenDocs\" class=\"alignnone wp-image-25252 size-full\" decoding=\"async\" height=\"523\" loading=\"lazy\" sizes=\"auto, (max-width: 937px) 100vw, 937px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png 937w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185-300x167.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185-768x429.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185-150x84.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185-400x223.png 400w\" width=\"937\"\/><\/p>\n<h2 data-nodeid=\"29402\">T\u1ea1i Sao Quy Tr\u00ecnh N\u00e0y L\u1ea1i Quan Tr\u1ecdng<\/h2>\n<p data-nodeid=\"29403\">T\u00e0i li\u1ec7u trong ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m th\u01b0\u1eddng \u0111i sau m\u00e3 ngu\u1ed3n. C\u00e1c k\u1ef9 s\u01b0 d\u00e0nh h\u00e0ng gi\u1edd \u0111\u1ec3 thi\u1ebft k\u1ebf c\u00e1c ki\u1ebfn tr\u00fac h\u1ec7 th\u1ed1ng ph\u1ee9c t\u1ea1p, trong khi c\u00e1c nh\u00e0 v\u0103n k\u1ef9 thu\u1eadt g\u1eb7p kh\u00f3 kh\u0103n trong vi\u1ec7c c\u1eadp nh\u1eadt c\u00e1c h\u00ecnh \u1ea3nh trong c\u00e1c t\u00e0i li\u1ec7u t\u0129nh. K\u1ebft qu\u1ea3 l\u00e0 g\u00ec? C\u00e1c bi\u1ec3u \u0111\u1ed3 l\u1ed7i th\u1eddi, c\u00e1c li\u00ean k\u1ebft b\u1ecb h\u1ecfng v\u00e0 m\u1ed9t c\u01a1 s\u1edf ki\u1ebfn th\u1ee9c kh\u00f4ng ph\u1ea3n \u00e1nh \u0111\u00fang th\u1ef1c t\u1ebf.<\/p>\n<p data-nodeid=\"29404\">VPasCode v\u00e0 OpenDocs gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1 n\u00e0y. VPasCode cho ph\u00e9p b\u1ea1n t\u1ea1o c\u00e1c bi\u1ec3u \u0111\u1ed3 chuy\u00ean nghi\u1ec7p b\u1eb1ng c\u00fa ph\u00e1p v\u0103n b\u1ea3n \u0111\u01a1n gi\u1ea3n (nh\u01b0 Mermaid), trong khi OpenDocs \u0111\u00f3ng vai tr\u00f2 l\u00e0 n\u1ec1n t\u1ea3ng qu\u1ea3n l\u00fd ki\u1ebfn th\u1ee9c \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi AI. \u0110i\u1ec1u k\u1ef3 di\u1ec7u x\u1ea3y ra khi b\u1ea1n k\u1ebft n\u1ed1i ch\u00fang: v\u1edbi T\u00edch h\u1ee3p Quy tr\u00ecnh t\u1eeb VPasCode sang OpenDocs, b\u1ea1n c\u00f3 th\u1ec3 g\u1eedi bi\u1ec3u \u0111\u1ed3 tr\u1ef1c ti\u1ebfp t\u1eeb tr\u00ecnh so\u1ea1n th\u1ea3o m\u00e3 c\u1ee7a m\u00ecnh v\u00e0o t\u00e0i li\u1ec7u c\u1ee7a m\u00ecnh ch\u1ec9 v\u1edbi m\u1ed9t c\u00fa nh\u1ea5p chu\u1ed9t. Kh\u00f4ng c\u00f2n ph\u1ea3i xu\u1ea5t, t\u1ea3i xu\u1ed1ng ho\u1eb7c t\u1ea3i l\u00ean l\u1ea1i n\u1eefa.<\/p>\n<h2 data-nodeid=\"29405\">Thi\u1ebft l\u1eadp &amp; C\u00f4ng c\u1ee5<\/h2>\n<h3 data-nodeid=\"29406\">B\u1eaft \u0111\u1ea7u<\/h3>\n<p data-nodeid=\"29407\">Tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u t\u1ea1o bi\u1ec3u \u0111\u1ed3, h\u00e3y \u0111\u1ea3m b\u1ea3o b\u1ea1n c\u00f3 quy\u1ec1n truy c\u1eadp v\u00e0o c\u00e1c c\u00f4ng c\u1ee5 c\u1ea7n thi\u1ebft:<\/p>\n<ul data-nodeid=\"29408\">\n<li data-nodeid=\"29409\">\n<p data-nodeid=\"29410\"><strong data-nodeid=\"29516\">VPasCode<\/strong>: M\u1ed9t s\u00e2n ch\u01a1i v\u00e0 tr\u00ecnh so\u1ea1n th\u1ea3o t\u01b0\u01a1ng t\u00e1c d\u1ef1a tr\u00ean tr\u00ecnh duy\u1ec7t cho ph\u01b0\u01a1ng ph\u00e1p Bi\u1ec3u \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng M\u00e3 (DaC). N\u00f3 h\u1ed7 tr\u1ee3 Mermaid.js, PlantUML v\u00e0 Graphviz trong m\u1ed9t giao di\u1ec7n th\u1ed1ng nh\u1ea5t.<\/p>\n<\/li>\n<li data-nodeid=\"29411\">\n<p data-nodeid=\"29412\"><strong data-nodeid=\"29525\">OpenDocs<\/strong>: M\u1ed9t n\u1ec1n t\u1ea3ng qu\u1ea3n l\u00fd ki\u1ebfn th\u1ee9c d\u1ef1a tr\u00ean web \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1eb7c bi\u1ec7t \u0111\u1ec3 nh\u1eadn th\u1ee9c v\u1ec1 bi\u1ec3u \u0111\u1ed3.<\/p>\n<\/li>\n<li data-nodeid=\"29413\">\n<p data-nodeid=\"29414\"><strong data-nodeid=\"29530\">T\u00e0i kho\u1ea3n Visual Paradigm<\/strong>: Trong khi c\u00e1c g\u00f3i mi\u1ec5n ph\u00ed cung c\u1ea5p t\u00ednh n\u0103ng xem tr\u01b0\u1edbc v\u00e0 xu\u1ea5t theo th\u1eddi gian th\u1ef1c, c\u00e1c g\u00f3i tr\u1ea3 ph\u00ed m\u1edf kh\u00f3a c\u00e1c t\u00ednh n\u0103ng AI ti\u00ean ti\u1ebfn nh\u01b0 s\u1eeda l\u1ed7i v\u00e0 d\u1ecbch thu\u1eadt.<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"29415\">Hi\u1ec3u Giao di\u1ec7n c\u1ee7a VPasCode<\/h3>\n<p data-nodeid=\"29416\">VPasCode c\u00f3 b\u1ed1 c\u1ee5c hai c\u1ed9t ph\u1ea3n h\u1ed3i, c\u00e2n b\u1eb1ng gi\u1eefa vi\u1ec7c so\u1ea1n th\u1ea3o m\u00e3 v\u00e0 ph\u1ea3n h\u1ed3i tr\u1ef1c quan ngay l\u1eadp t\u1ee9c:<\/p>\n<ul data-nodeid=\"29417\">\n<li data-nodeid=\"29418\">\n<p data-nodeid=\"29419\"><strong data-nodeid=\"29539\">B\u1ea3ng b\u00ean tr\u00e1i: Tr\u00ecnh so\u1ea1n th\u1ea3o M\u00e3<\/strong> \u2013 Ch\u1ee9a t\u00ednh n\u0103ng t\u00f4 s\u00e1ng c\u00fa ph\u00e1p, b\u1ed9 ch\u1ecdn c\u00f4ng c\u1ee5 x\u1eed l\u00fd v\u00e0 \u0111\u1ebfm l\u1ed7i theo th\u1eddi gian th\u1ef1c.<\/p>\n<\/li>\n<li data-nodeid=\"29420\">\n<p data-nodeid=\"29421\"><strong data-nodeid=\"29544\">B\u1ea3ng b\u00ean ph\u1ea3i: Xem tr\u01b0\u1edbc Tr\u1ef1c quan<\/strong> \u2013 Hi\u1ec3n th\u1ecb ngay l\u1eadp t\u1ee9c bi\u1ec3u \u0111\u1ed3 c\u1ee7a b\u1ea1n khi b\u1ea1n \u0111ang g\u00f5.<\/p>\n<\/li>\n<li data-nodeid=\"29422\">\n<p data-nodeid=\"29423\"><strong data-nodeid=\"29549\">Thanh tr\u1ea1ng th\u00e1i<\/strong>: Hi\u1ec3n th\u1ecb vi\u1ec7c x\u00e1c th\u1ef1c c\u00fa ph\u00e1p theo th\u1eddi gian th\u1ef1c v\u00e0 s\u1ed1 l\u01b0\u1ee3ng l\u1ed7i.<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"29424\">K\u1ebft n\u1ed1i Quy tr\u00ecnh<\/h3>\n<p data-nodeid=\"29425\">T\u00edch h\u1ee3p \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng s\u1eb5n, v\u00ec v\u1eady kh\u00f4ng c\u1ea7n c\u00e1c kh\u00f3a API ph\u1ee9c t\u1ea1p. Ch\u1ec9 c\u1ea7n \u0111\u0103ng nh\u1eadp v\u00e0o c\u1ea3 hai n\u1ec1n t\u1ea3ng b\u1eb1ng c\u00f9ng m\u1ed9t th\u00f4ng tin \u0111\u0103ng nh\u1eadp Visual Paradigm. Khi b\u1ea1n s\u1eb5n s\u00e0ng chia s\u1ebb m\u1ed9t bi\u1ec3u \u0111\u1ed3, n\u00fat <strong data-nodeid=\"29560\">\u201cG\u1eedi v\u00e0o Quy tr\u00ecnh OpenDocs\u201d<\/strong> trong VPasCode s\u1ebd \u0111\u1ecbnh tuy\u1ebfn an to\u00e0n h\u00ecnh \u1ea3nh c\u1ee7a b\u1ea1n \u0111\u1ebfn kh\u00f4ng gian l\u00e0m vi\u1ec7c OpenDocs c\u1ee7a b\u1ea1n.<\/p>\n<p data-nodeid=\"29426\">Quy tr\u00ecnh \u0111\u00f3ng vai tr\u00f2 l\u00e0 kho l\u01b0u tr\u1eef trung t\u00e2m an to\u00e0n d\u1ef1a tr\u00ean \u0111\u00e1m m\u00e2y cho t\u1ea5t c\u1ea3 c\u00e1c t\u00e0i s\u1ea3n tr\u1ef1c quan c\u1ee7a b\u1ea1n. N\u00f3 theo d\u00f5i phi\u00ean b\u1ea3n t\u00e0i s\u1ea3n, duy tr\u00ec l\u1ecbch s\u1eed s\u1eeda \u0111\u1ed5i v\u00e0 ghi l\u1ea1i b\u00ecnh lu\u1eadn c\u1ee7a ng\u01b0\u1eddi d\u00f9ng \u2014 t\u1ea5t c\u1ea3 m\u00e0 kh\u00f4ng c\u1ea7n l\u01b0u t\u1ec7p th\u1ee7 c\u00f4ng.<\/p>\n<h2 data-nodeid=\"29427\">C\u00e1c V\u00ed d\u1ee5 Th\u1ef1c t\u1ebf v\u1ec1 Mermaid<\/h2>\n<p data-nodeid=\"29428\">H\u00e3y c\u00f9ng kh\u00e1m ph\u00e1 c\u00e1ch t\u1ea1o c\u00e1c bi\u1ec3u \u0111\u1ed3 th\u1ef1c t\u1ebf b\u1eb1ng c\u00fa ph\u00e1p Mermaid trong VPasCode.<\/p>\n<h3 data-nodeid=\"29429\">V\u00ed d\u1ee5 1: S\u01a1 \u0111\u1ed3 Lu\u1ed3ng X\u00e1c th\u1ef1c Ng\u01b0\u1eddi d\u00f9ng<\/h3>\n<p data-nodeid=\"29430\">V\u00ed d\u1ee5 n\u00e0y minh h\u1ecda quy tr\u00ecnh \u0111\u0103ng nh\u1eadp c\u01a1 b\u1ea3n s\u1eed d\u1ee5ng s\u01a1 \u0111\u1ed3 lu\u1ed3ng. S\u01a1 \u0111\u1ed3 lu\u1ed3ng r\u1ea5t l\u00fd t\u01b0\u1edfng \u0111\u1ec3 t\u00e0i li\u1ec7u h\u00f3a logic kinh doanh, h\u00e0nh tr\u00ecnh ng\u01b0\u1eddi d\u00f9ng v\u00e0 lu\u1ed3ng quy tr\u00ecnh.<\/p>\n<p id=\"LGlaacr\"><img alt=\"\" class=\"alignnone size-full wp-image-25246\" decoding=\"async\" height=\"871\" loading=\"lazy\" sizes=\"auto, (max-width: 1917px) 100vw, 1917px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d.png 1917w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d-300x136.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d-1030x468.png 1030w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d-768x349.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d-1536x698.png 1536w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d-150x68.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74e4c839d-400x182.png 400w\" width=\"1917\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Mermaid<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNpVj0Frg0AQhe+B\/IeBQm85lCIEDy3qrrm0pcT0UCSHVWdVsK7MbggS+9+7ulrM3Ga+9+bNlCS6Ck5suwFbQZoYQcaHL40EqsNWg+i6M+x2LxCmvDV2PLJW\/CA8wqfQ+qqoODt7OOmi24l6MAreVFm3vw5FIxqSS56j1gOw9IhFTZibUciErjIl\/vc4cSzq5kI4AE+TSl2BEymCd+sXJc5KPiXGtyMa6l\/nrHiyf6PNCdeTDzXAwT5R+O40CDJFBpdUNu06bDeu1aZvEAKQddP4D\/gkPYlrwhaylx7u14TPRErM8M4TLeQZPen9ATBXbRg=\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Mermaid<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNpVkDFLw1AUhXeh\/+GC4NZBJFA6KE3SVih2yhY6mPa9vGB8Fk2GYhyko4tODiJapJQKRUEX8waHFP\/H\/Sfel6SQZkjefeecez7iX56OBTh2bQfoabkmph8RrB8wXcRN6Pt\/n6ieAxhlP9KHc1QvgGpJxxGqufQHUK8fgun2BaarMTjZu6TsekoGWVztwQl9IzijcRkPihozj1nXjkC12g7cFA5LOxJHZK9SwDD7ln4CtmuJeIJqKkForCcKadBfCUT9lk8BqtuYygJtG2zvwnQegYfpLEig7R7nFogI4Y7eugK8bHYBIarHoIy2c9BOCRrq7FFJ2Mm3WtlXAmb1picK2q7bI7RIr06HTVjfV\/+Kp0tp52JSFtl5Ube2U4xX0SRk0AIehGFzl+1zg7OqYm+UBjdYo6q0S4Vz5rGtjLVRDpjBjX9mzcOf\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-mermaid\" data-nodeid=\"29431\"><code class=\"language-mermaid\" data-language=\"mermaid\" class=\"language-mermaid\">graph TD\r\n    A[B\u1eaft \u0111\u1ea7u: Ng\u01b0\u1eddi d\u00f9ng m\u1edf \u1ee9ng d\u1ee5ng] --&gt; B[Nh\u1eadp T\u00ean \u0111\u0103ng nh\u1eadp &amp; M\u1eadt kh\u1ea9u]\r\n    B --&gt; C{Th\u1eed \u0111\u0103ng nh\u1eadp}\r\n    C --&gt;|Th\u00e0nh c\u00f4ng| D[Chuy\u1ec3n h\u01b0\u1edbng \u0111\u1ebfn B\u1ea3ng \u0111i\u1ec1u khi\u1ec3n]\r\n    C --&gt;|Th\u1ea5t b\u1ea1i| E[Hi\u1ec3n th\u1ecb th\u00f4ng b\u00e1o l\u1ed7i]\r\n    E --&gt; F{Th\u1eed l\u1ea1i?}\r\n    F --&gt;|C\u00f3| B\r\n    F --&gt;|Kh\u00f4ng| G[K\u1ebft th\u00fac: \u0110\u0103ng nh\u1eadp b\u1ecb h\u1ee7y]\r\n    D --&gt; G\r\n\r\n    style A fill:#e1f5fe\r\n    style D fill:#e8f5e8\r\n    style E fill:#ffebee\r\n    style C fill:#f3e5f5<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNpVkDFLw1AUhXeh\/+GC4NZBJFA6KE3SVih2yhY6mPa9vGB8Fk2GYhyko4tODiJapJQKRUEX8waHFP\/H\/Sfel6SQZkjefeecez7iX56OBTh2bQfoabkmph8RrB8wXcRN6Pt\/n6ieAxhlP9KHc1QvgGpJxxGqufQHUK8fgun2BaarMTjZu6TsekoGWVztwQl9IzijcRkPihozj1nXjkC12g7cFA5LOxJHZK9SwDD7ln4CtmuJeIJqKkForCcKadBfCUT9lk8BqtuYygJtG2zvwnQegYfpLEig7R7nFogI4Y7eugK8bHYBIarHoIy2c9BOCRrq7FFJ2Mm3WtlXAmb1picK2q7bI7RIr06HTVjfV\/+Kp0tp52JSFtl5Ube2U4xX0SRk0AIehGFzl+1zg7OqYm+UBjdYo6q0S4Vz5rGtjLVRDpjBjX9mzcOf\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNpVj0Frg0AQhe+B\/IeBQm85lCIEDy3qrrm0pcT0UCSHVWdVsK7MbggS+9+7ulrM3Ga+9+bNlCS6Ck5suwFbQZoYQcaHL40EqsNWg+i6M+x2LxCmvDV2PLJW\/CA8wqfQ+qqoODt7OOmi24l6MAreVFm3vw5FIxqSS56j1gOw9IhFTZibUciErjIl\/vc4cSzq5kI4AE+TSl2BEymCd+sXJc5KPiXGtyMa6l\/nrHiyf6PNCdeTDzXAwT5R+O40CDJFBpdUNu06bDeu1aZvEAKQddP4D\/gkPYlrwhaylx7u14TPRErM8M4TLeQZPen9ATBXbRg=\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29432\"><strong data-nodeid=\"29582\">C\u00e1ch s\u1eed d\u1ee5ng c\u00e1i n\u00e0y<\/strong>: Sao ch\u00e9p m\u00e3 n\u00e0y v\u00e0o tr\u00ecnh so\u1ea1n th\u1ea3o c\u1ee7a VPasCode, ch\u1ecdn &#8220;Mermaid&#8221; l\u00e0m c\u00f4ng c\u1ee5 x\u1eed l\u00fd, v\u00e0 xem s\u01a1 \u0111\u1ed3 lu\u1ed3ng \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb ngay l\u1eadp t\u1ee9c. Nh\u1ea5p v\u00e0o &#8220;G\u1eedi v\u00e0o Quy tr\u00ecnh OpenDocs&#8221; \u0111\u1ec3 \u0111\u1ea9y s\u01a1 \u0111\u1ed3 n\u00e0y tr\u1ef1c ti\u1ebfp v\u00e0o t\u00e0i li\u1ec7u \u0111\u1eb7c t\u1ea3 k\u1ef9 thu\u1eadt c\u1ee7a b\u1ea1n.<\/p>\n<h3 data-nodeid=\"29433\">V\u00ed d\u1ee5 2: S\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1 x\u00e1c th\u1ef1c REST API<\/h3>\n<p data-nodeid=\"29434\">\u0110\u1ec3 t\u00e0i li\u1ec7u h\u00f3a c\u00e1c t\u01b0\u01a1ng t\u00e1c gi\u1eefa c\u00e1c th\u00e0nh ph\u1ea7n h\u1ec7 th\u1ed1ng, s\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1 l\u00e0 v\u00f4 gi\u00e1. V\u00ed d\u1ee5 n\u00e0y minh h\u1ecda lu\u1ed3ng x\u00e1c th\u1ef1c REST API ho\u00e0n ch\u1ec9nh v\u1edbi vi\u1ec7c t\u1ea1o m\u00e3 th\u00f4ng b\u00e1o JWT.<\/p>\n<p id=\"eLVadWd\"><img alt=\"\" class=\"alignnone size-full wp-image-25247\" decoding=\"async\" height=\"1401\" loading=\"lazy\" sizes=\"auto, (max-width: 1058px) 100vw, 1058px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74ff1a518.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74ff1a518.png 1058w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74ff1a518-227x300.png 227w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74ff1a518-778x1030.png 778w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74ff1a518-768x1017.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74ff1a518-113x150.png 113w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f74ff1a518-400x530.png 400w\" width=\"1058\"\/><\/p>\n<p>\u00a0<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Mermaid<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqVk99PwjAQx99N\/B\/unSyi8WkPJOLQoEaIgDyX7oDG0WLbgfrXe\/0xwG2a2Jfuep\/efe+uM\/heouSYCbbSbHN+BrRYaZUsNwvUwY6n3CoNM1Odbpm2gostkxZuC4G0MQNzXESrSd2Mhw55GUym7rsFKO3aEX6foN4Jjk0q6zsmY5YtmCF\/IJywpNcLuVMYSIsauMacTMEKE6jgJq5DAlIYj0jKRaFWQgY\/nXonCUjhlRUiZxabYZzfcVk\/hTshcyh9W2KjCuvVAH4IY+MNt7J+QpdCbA9o5ErnRyCGjdlRi+UnVW7M\/gd1\/HKZxtEPG2b5Gk\/SNSLeo0Tt6nmYT1sw4hLflal6Q1kDqC\/OX7X3qtuF0SN02thDjyt4Qg8Hwf5KEurakcKTGwSYknM0J4VgYfBY514ruWqX79UP5c7NrTm0Wi2VuuvuJcwkvfm10uIL878lzl32lqGgjIYX66crlYWlKmVefwFJGMdz099aSHn45f6lvq68TROp\/gb3CBzP\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Mermaid<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqNU01P20AQvSPxH+aOoqaIkw9IDebANypGcN04K3uFvTb2Golee+ihlyKOVQVRxAGpFVTqpdmjo\/yP\/SfMerMkxEnIHuz1znuz782Mc3pZUO5Tl5EgI\/HqCuAihUh4EbdpZr5Hp75IMjjN7WlKMsF8lhIuYCtiFF8kt7sz2q6jPh3vaMjn7RNP72cAChFqhKvkdz+EKyUf4Lzs+iBCJf\/6dYLbqu4cdiFX8g46Sj5BxJT8VqyuGLTW29jcNLIcOAxV\/0+K+cp\/PADBOAxuBl9xy6uA4RgwstZQpQPHR6j3Q5QEjJs4nlZBVOtM6nsnrcZrnttywCt\/x8CD4bOSvxh0yv88sIpJJODwTQSEkrccn\/0uMxi93FYDsxkRLdXvcQhCVstp0aPLJzTHjIcQozwBF6jysRiDxzst5mACo1\/yZzoG1HJ7qDKB3TNvBgZBjaqkB2XPFqtddpMpKJZXI23P1ptNONqDtcWs16ZZ2v7wuYB4CQpy9JQ4MPgx0TNNu8cK+Zo85tEop28rkhM222rl1JszEsiuAljOXgoRjuzMIlgzG82PcMrxxwyTjH2hncVGTgib01nKR9TKx95InB5GHOH+w\/Xc+THT1jA9rvOmBs26n5rjBZ6X9jvtdUkPaPwFo9WzQQ==\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-mermaid\" data-nodeid=\"29435\"><code class=\"language-mermaid\" data-language=\"mermaid\" class=\"language-mermaid\">sequenceDiagram\r\n    autonumber\r\n    \r\n    actor User\r\n    participant Client as Client Web\r\n    participant API as REST API\r\n    participant Auth as D\u1ecbch v\u1ee5 X\u00e1c th\u1ef1c\r\n    participant DB as C\u01a1 s\u1edf d\u1eef li\u1ec7u\r\n\r\n    User-&gt;&gt;Client: Nh\u1eadp th\u00f4ng tin \u0111\u0103ng nh\u1eadp\r\n    Client-&gt;&gt;+API: POST \/login\r\n    API-&gt;&gt;+Auth: X\u00e1c th\u1ef1c th\u00f4ng tin \u0111\u0103ng nh\u1eadp\r\n    Auth-&gt;&gt;+DB: T\u00ecm ng\u01b0\u1eddi d\u00f9ng\r\n\r\n    alt Ng\u01b0\u1eddi d\u00f9ng t\u1ed3n t\u1ea1i\r\n        DB--&gt;&gt;Auth: B\u1ea3n ghi ng\u01b0\u1eddi d\u00f9ng\r\n        Auth-&gt;&gt;Auth: X\u00e1c minh m\u1eadt kh\u1ea9u\r\n        \r\n        alt M\u1eadt kh\u1ea9u kh\u1edbp\r\n            Auth-&gt;&gt;Auth: T\u1ea1o JWT\r\n            Auth--&gt;&gt;-API: M\u00e3 th\u00f4ng b\u00e1o\r\n            API--&gt;&gt;-Client: 200 OK + M\u00e3 th\u00f4ng b\u00e1o\r\n            Client-&gt;&gt;Client: L\u01b0u m\u00e3 th\u00f4ng b\u00e1o\r\n            Client--&gt;&gt;User: \u0110\u0103ng nh\u1eadp th\u00e0nh c\u00f4ng\r\n        else M\u1eadt kh\u1ea9u sai\r\n            Auth--&gt;&gt;API: Th\u00f4ng tin \u0111\u0103ng nh\u1eadp kh\u00f4ng h\u1ee3p l\u1ec7\r\n            API--&gt;&gt;Client: 401 Unauthorized\r\n            Client--&gt;&gt;User: Sai m\u1eadt kh\u1ea9u\r\n        end\r\n    else Kh\u00f4ng t\u00ecm th\u1ea5y ng\u01b0\u1eddi d\u00f9ng\r\n        DB--&gt;&gt;-Auth: Kh\u00f4ng t\u00ecm th\u1ea5y\r\n        Auth--&gt;&gt;API: Ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng h\u1ee3p l\u1ec7\r\n        API--&gt;&gt;Client: 401 Unauthorized\r\n        Client--&gt;&gt;User: Kh\u00f4ng t\u00ecm th\u1ea5y ng\u01b0\u1eddi d\u00f9ng\r\n    end<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqNU01P20AQvSPxH+aOoqaIkw9IDebANypGcN04K3uFvTb2Golee+ihlyKOVQVRxAGpFVTqpdmjo\/yP\/SfMerMkxEnIHuz1znuz782Mc3pZUO5Tl5EgI\/HqCuAihUh4EbdpZr5Hp75IMjjN7WlKMsF8lhIuYCtiFF8kt7sz2q6jPh3vaMjn7RNP72cAChFqhKvkdz+EKyUf4Lzs+iBCJf\/6dYLbqu4cdiFX8g46Sj5BxJT8VqyuGLTW29jcNLIcOAxV\/0+K+cp\/PADBOAxuBl9xy6uA4RgwstZQpQPHR6j3Q5QEjJs4nlZBVOtM6nsnrcZrnttywCt\/x8CD4bOSvxh0yv88sIpJJODwTQSEkrccn\/0uMxi93FYDsxkRLdXvcQhCVstp0aPLJzTHjIcQozwBF6jysRiDxzst5mACo1\/yZzoG1HJ7qDKB3TNvBgZBjaqkB2XPFqtddpMpKJZXI23P1ptNONqDtcWs16ZZ2v7wuYB4CQpy9JQ4MPgx0TNNu8cK+Zo85tEop28rkhM222rl1JszEsiuAljOXgoRjuzMIlgzG82PcMrxxwyTjH2hncVGTgib01nKR9TKx95InB5GHOH+w\/Xc+THT1jA9rvOmBs26n5rjBZ6X9jvtdUkPaPwFo9WzQQ==\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqVk99PwjAQx99N\/B\/unSyi8WkPJOLQoEaIgDyX7oDG0WLbgfrXe\/0xwG2a2Jfuep\/efe+uM\/heouSYCbbSbHN+BrRYaZUsNwvUwY6n3CoNM1Odbpm2gostkxZuC4G0MQNzXESrSd2Mhw55GUym7rsFKO3aEX6foN4Jjk0q6zsmY5YtmCF\/IJywpNcLuVMYSIsauMacTMEKE6jgJq5DAlIYj0jKRaFWQgY\/nXonCUjhlRUiZxabYZzfcVk\/hTshcyh9W2KjCuvVAH4IY+MNt7J+QpdCbA9o5ErnRyCGjdlRi+UnVW7M\/gd1\/HKZxtEPG2b5Gk\/SNSLeo0Tt6nmYT1sw4hLflal6Q1kDqC\/OX7X3qtuF0SN02thDjyt4Qg8Hwf5KEurakcKTGwSYknM0J4VgYfBY514ruWqX79UP5c7NrTm0Wi2VuuvuJcwkvfm10uIL878lzl32lqGgjIYX66crlYWlKmVefwFJGMdz099aSHn45f6lvq68TROp\/gb3CBzP\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29436\"><strong data-nodeid=\"29589\">C\u00e1c t\u00ednh n\u0103ng ch\u00ednh \u0111\u01b0\u1ee3c minh h\u1ecda<\/strong>:<\/p>\n<ul data-nodeid=\"29437\">\n<li data-nodeid=\"29438\">\n<p data-nodeid=\"29439\"><code data-backticks=\"1\" data-nodeid=\"29590\">autonumber<\/code>  t\u1ef1 \u0111\u1ed9ng \u0111\u00e1nh s\u1ed1 t\u1eebng b\u01b0\u1edbc<\/p>\n<\/li>\n<li data-nodeid=\"29440\">\n<p data-nodeid=\"29441\"><code data-backticks=\"1\" data-nodeid=\"29592\">actor<\/code>  v\u00e0 <code data-backticks=\"1\" data-nodeid=\"29594\">participant<\/code>  \u0111\u1ecbnh ngh\u0129a c\u00e1c lo\u1ea1i th\u1ef1c th\u1ec3 kh\u00e1c nhau<\/p>\n<\/li>\n<li data-nodeid=\"29442\">\n<p data-nodeid=\"29443\"><code data-backticks=\"1\" data-nodeid=\"29596\">alt<\/code>  kh\u1ed1i hi\u1ec3n th\u1ecb c\u00e1c \u0111\u01b0\u1eddng d\u1eabn c\u00f3 \u0111i\u1ec1u ki\u1ec7n<\/p>\n<\/li>\n<li data-nodeid=\"29444\">\n<p data-nodeid=\"29445\"><code data-backticks=\"1\" data-nodeid=\"29598\">+<\/code>  v\u00e0 <code data-backticks=\"1\" data-nodeid=\"29600\">-<\/code>  c\u00e1c k\u00fd hi\u1ec7u ch\u1ec9 ra s\u1ef1 k\u00edch ho\u1ea1t v\u00e0 t\u1eaft c\u1ee7a c\u00e1c d\u1ecbch v\u1ee5<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"29446\">V\u00ed d\u1ee5 3: S\u01a1 \u0111\u1ed3 Container C4 cho ki\u1ebfn tr\u00fac vi d\u1ecbch v\u1ee5<\/h3>\n<p data-nodeid=\"29447\">\u0110\u1ed1i v\u1edbi t\u00e0i li\u1ec7u h\u00f3a ki\u1ebfn tr\u00fac \u1edf m\u1ee9c \u0111\u1ed9 cao, m\u00f4 h\u00ecnh C4 cung c\u1ea5p s\u1ef1 r\u00f5 r\u00e0ng tuy\u1ec7t v\u1eddi. V\u00ed d\u1ee5 n\u00e0y minh h\u1ecda s\u01a1 \u0111\u1ed3 container cho h\u1ec7 th\u1ed1ng ng\u00e2n h\u00e0ng tr\u1ef1c tuy\u1ebfn.<\/p>\n<p id=\"AOtRkiZ\"><img alt=\"\" class=\"alignnone size-full wp-image-25248\" decoding=\"async\" height=\"704\" loading=\"lazy\" sizes=\"auto, (max-width: 324px) 100vw, 324px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f751cbd172.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f751cbd172.png 324w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f751cbd172-138x300.png 138w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f751cbd172-69x150.png 69w\" width=\"324\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Mermaid<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqNkVFrwjAUhd8F\/8NFYWwwccqmIkOw9sGNjbnVzYfiw22bdsGYlNxUEPzxS5qOCWOwQHrD6XfPyW0LjeUnrMN2C+yiKilqofMiBZcMApQ7LguIjmTYvuMptzYsmZdlbAvYKniKhit5n+j+7BEPeA1RqV3j88eiFkMm+IFpglRJw6QBo6AiK2x\/POerh9huG5rumMx+mwVKmVpdoswEI0gqsrckAqEKnp5ZhUF8GaLBBInVHdHrk69GadvoogHTVFXSEFyA0SgJUzcDXTU+9gr+4J\/vtiVeVGTUnukt9Hqzk5Xo1HwKD\/lz\/XKBQhAcOMJyvV5FJzeeh9yMjnhjmFF\/o7lxNmHQbjV\/wRwFq\/Mg50JMuzeT2+E4uU6VUHrazfP8nGsiPTkYjCZJ9gfpcv+BhcE3hXfD8eiM+gIxTKmK\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Mermaid<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqNkU1LAkEYx++B3+FBIQoUU0pFQvAFtLIw3F5APOyuujO47G7rriDsvUMEdewQaSF0ieyYQ3TY8HvMN2l2ZiMpguYw858\/v3neRrNlC4FUiawAWwNX0bgRrVFyDg6i5NrQ4EDz7w1A\/phpyabkRQXHHdH5uxEV74J10lWKltWi5JFRHUqm7GDetmInC7vyUI5D07IxM\/ePy9wsu+yi0vnUAoOSGwwdbiATDG0xo+SWOf6robW\/cxQbO62SrPa7RifQv2OXTNPh7iklT6D7b6CbGlZZRIRZRxYMWWFLASul1lp5MYEBJXdB0c+gB5zLYzQP6\/ysL2YuOP4YQx+ZdP5g\/CgQVkHDshm8v1DRehie1SiE2I8GXbu1h\/yJisQk25BIFLxmUKeYlheOUPBCc6ZKySWGM1eGmiQ1ml7QuoCY4MTHFUPUZBVhj7UUWQl\/0xnpXZ4YeljX87GN3GY6q8RVUzftfKzX6y1zYUJBplKZnNL5gwyy\/gOrlL4oeSudzSxRn0V63zY=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-mermaid\" data-nodeid=\"29448\"><code class=\"language-mermaid\" data-language=\"mermaid\" class=\"language-mermaid\">graph TD\r\n    subgraph \"H\u1ec7 th\u1ed1ng Ng\u00e2n h\u00e0ng Tr\u1ef1c tuy\u1ebfn\"\r\n        WebApp[\u1ee8ng d\u1ee5ng Web&lt;br\/&gt;Java, Spring MVC&lt;br\/&gt;Cung c\u1ea5p n\u1ed9i dung cho ng\u01b0\u1eddi d\u00f9ng]\r\n        API[Backend API&lt;br\/&gt;Java, Spring Boot&lt;br\/&gt;X\u1eed l\u00fd logic nghi\u1ec7p v\u1ee5]\r\n        DB[(C\u01a1 s\u1edf d\u1eef li\u1ec7u&lt;br\/&gt;SQL&lt;br\/&gt;L\u01b0u t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng &amp; giao d\u1ecbch)]\r\n    end\r\n    \r\n    User[Kh\u00e1ch h\u00e0ng] --&gt;|S\u1eed d\u1ee5ng| WebApp\r\n    WebApp --&gt;|G\u1ecdi qua HTTPS| API\r\n    API --&gt;|\u0110\u1ecdc\/Ghi| DB\r\n\r\n    style User fill:#08427b,color:#fff\r\n    style WebApp fill:#1168bd,color:#fff\r\n    style API fill:#1168bd,color:#fff\r\n    style DB fill:#1a5276,color:#fff\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqNkU1LAkEYx++B3+FBIQoUU0pFQvAFtLIw3F5APOyuujO47G7rriDsvUMEdewQaSF0ieyYQ3TY8HvMN2l2ZiMpguYw858\/v3neRrNlC4FUiawAWwNX0bgRrVFyDg6i5NrQ4EDz7w1A\/phpyabkRQXHHdH5uxEV74J10lWKltWi5JFRHUqm7GDetmInC7vyUI5D07IxM\/ePy9wsu+yi0vnUAoOSGwwdbiATDG0xo+SWOf6robW\/cxQbO62SrPa7RifQv2OXTNPh7iklT6D7b6CbGlZZRIRZRxYMWWFLASul1lp5MYEBJXdB0c+gB5zLYzQP6\/ysL2YuOP4YQx+ZdP5g\/CgQVkHDshm8v1DRehie1SiE2I8GXbu1h\/yJisQk25BIFLxmUKeYlheOUPBCc6ZKySWGM1eGmiQ1ml7QuoCY4MTHFUPUZBVhj7UUWQl\/0xnpXZ4YeljX87GN3GY6q8RVUzftfKzX6y1zYUJBplKZnNL5gwyy\/gOrlL4oeSudzSxRn0V63zY=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqNkVFrwjAUhd8F\/8NFYWwwccqmIkOw9sGNjbnVzYfiw22bdsGYlNxUEPzxS5qOCWOwQHrD6XfPyW0LjeUnrMN2C+yiKilqofMiBZcMApQ7LguIjmTYvuMptzYsmZdlbAvYKniKhit5n+j+7BEPeA1RqV3j88eiFkMm+IFpglRJw6QBo6AiK2x\/POerh9huG5rumMx+mwVKmVpdoswEI0gqsrckAqEKnp5ZhUF8GaLBBInVHdHrk69GadvoogHTVFXSEFyA0SgJUzcDXTU+9gr+4J\/vtiVeVGTUnukt9Hqzk5Xo1HwKD\/lz\/XKBQhAcOMJyvV5FJzeeh9yMjnhjmFF\/o7lxNmHQbjV\/wRwFq\/Mg50JMuzeT2+E4uU6VUHrazfP8nGsiPTkYjCZJ9gfpcv+BhcE3hXfD8eiM+gIxTKmK\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29449\"><strong data-nodeid=\"29608\">T\u1ea1i sao \u0111i\u1ec1u n\u00e0y hi\u1ec7u qu\u1ea3<\/strong>: Tr\u1ef1c quan h\u00f3a n\u00e0y gi\u00fap c\u00e1c b\u00ean li\u00ean quan hi\u1ec3u r\u00f5 ranh gi\u1edbi h\u1ec7 th\u1ed1ng m\u00e0 kh\u00f4ng b\u1ecb sa \u0111\u00e0 v\u00e0o chi ti\u1ebft m\u00e3. Subgraph nh\u00f3m c\u00e1c th\u00e0nh ph\u1ea7n li\u00ean quan, v\u00e0 c\u00e1c ki\u1ec3u d\u00e1ng gi\u00fap bi\u1ec3u \u0111\u1ed3 tr\u1edf n\u00ean chuy\u00ean nghi\u1ec7p h\u01a1n.<\/p>\n<h3 data-nodeid=\"29450\">V\u00ed d\u1ee5 4: Lu\u1ed3ng OAuth 2.0 Ph\u1ee9c t\u1ea1p<\/h3>\n<p data-nodeid=\"29451\">\u0110\u1ed1i v\u1edbi c\u00e1c k\u1ecbch b\u1ea3n x\u00e1c th\u1ef1c n\u00e2ng cao h\u01a1n, v\u00ed d\u1ee5 n\u00e0y minh h\u1ecda Lu\u1ed3ng M\u00e3 C\u1ea5p quy\u1ec1n OAuth 2.0 v\u1edbi l\u00e0m m\u1edbi token.<\/p>\n<p id=\"AkaHyIJ\"><img alt=\"\" class=\"alignnone size-full wp-image-25249\" decoding=\"async\" height=\"1656\" loading=\"lazy\" sizes=\"auto, (max-width: 1179px) 100vw, 1179px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9.png 1179w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9-214x300.png 214w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9-733x1030.png 733w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9-768x1079.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9-1094x1536.png 1094w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9-107x150.png 107w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f7535c8cf9-400x562.png 400w\" width=\"1179\"\/><\/p>\n<p>\u00a0<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Mermaid<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqtVMFO20AQvSPxDyNOoBIpILjkgJSWCiEhipLyAZv14Kzi7JqZNaH9+s54bcdOXPXSPSRrz5s3b96MzPheobd470xOZnt6AnJMFYOvtiuk9Ny8tTEQvHL7tjQUnXWl8RG+UtiNBuZlCYbhW+EwPY1AqrhWTP2\/RPoY41kgh4osKrC7z18eT08SVmVN7u4aHTMtaDdw9hRy52HnhPmH8p8ldAOTBFE0g0fvojMRoVB4gkigz7fAzBHaCDEcC+3RSWhWAwK53ya64IHUYo6tUg0K8rWmXa7DLlWFt0DbQS+J67uPSGAJMzHQmYL\/xmKDZ\/WYBYt+hOmB1MgSaeuYRdiBoONWa9uMNmtDhqPOzdsoWFMUK2M3LWvNQPnq\/Pr29hKub6byM51epKCe5yCGB\/FQrb5MEpOpkxgmXN\/gnNFWhL20NJfGm0+7Nj7HpEAMlOls0HMPrb11Yq1FZvgiHb4R8nqARp91hgxHv0QxFRvL+h50\/suW5ZiB6ywtQih1O2tXenIO3FukzYDMRHPYYbvks45HhDcd1Lr3CfubKSL81CB8mMJl+4CelrHz435Qti09XAUuda32KCwYmxL4Wcqe\/KvIzfTquEY7wMEgDmD9yT3jTj4\/Y72PGbbASL\/S9npJHMn4P1b4rFudPxEyh+g=\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Mermaid<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqtU01rE0EYvhf6H156qlghlvaSQ6GmoKLGIgnocbMdMkN2Z7ebmWqO0kMPIqQUTx5MCKWlWrTgaRfxsIv\/Y\/6J7+zsl8k2vbiH3Z2Z5533+ZgZkkNJuE32mNUPLHd1BfCxpPC4dHskMONs1hZeAN1hPutbgWA28y0u4FHgva1d2PV9sIagokvehwMVnePnGY2nNgUaT3i\/pkIKqktexNMR2FRFF\/Aa8SDw98ZexL8iQ08GNtE1u\/tPoRNPGPC+HMVXfHXF4DXpBzs7GcsmtKkKz31YS8bJMRLiOLz2oafCGxy91AzWTGFWgbUopInMVfSFgVDh1IPktFJs4AiqtmlROVLRMQf654eKPiM4OVXhb75UW6Ul8mjCm\/hKgq3Ci\/SNrA\/1pu8LbRqF4G7a8QlL++n9PkBPDyS4Kvwq69h2q23axgNB458IE4zX6ru1l4thYqLfONUaozMsjH\/VtGktkbDEt0F86WKPGbxbYpdOqGU5Ts+yB4tgAw+ILSDo99Y3t7c3YHOrga9G455Z1E\/bEwS8IxLoMDcM6UpcWYBuObOOx2bmaZevRWUfcxRMfTJW0SeWUnJQ\/wiENyC8gtX6cwUdvQYikCOdN0ZyP5ty4gl6gH4wU0n4QWHgv+euQxmyFLoZ1vuUpVeh6lYRYjJGUnNJG6jjeT48VtFHpq9VSXbO8MrxxOv9HRw8FSdy3of8kjbLHQtdpdSyqvyzHJHh0O2Zj5qik3JVP\/nehYN7dTxyLlWf9lHwLN34jJVI4gxJ0VLbiO8pv6PnVuPhYq88\/+dFcvPJ351+JfDbLO2ggGsd9pTBUdmlrvS\/e6XPYPbzF+oqRQo=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-mermaid\" data-nodeid=\"29452\"><code class=\"language-mermaid\" data-language=\"mermaid\" class=\"language-mermaid\">sequenceDiagram\r\n    autonumber\r\n    \r\n    actor User\r\n    participant Browser\r\n    participant App as \u1ee8ng d\u1ee5ng Kh\u00e1ch h\u00e0ng\r\n    participant Auth as M\u00e1y ch\u1ee7 X\u00e1c th\u1ef1c\r\n    participant Resource as API T\u00e0i nguy\u00ean\r\n\r\n    User-&gt;&gt;Browser: Nh\u1ea5p \"\u0110\u0103ng nh\u1eadp b\u1eb1ng OAuth\"\r\n    Browser-&gt;&gt;App: Kh\u1edfi t\u1ea1o \u0111\u0103ng nh\u1eadp\r\n    App-&gt;&gt;Browser: Chuy\u1ec3n h\u01b0\u1edbng \u0111\u1ebfn M\u00e1y ch\u1ee7 X\u00e1c th\u1ef1c\r\n    Browser-&gt;&gt;Auth: Y\u00eau c\u1ea7u c\u1ea5p quy\u1ec1n\r\n\r\n    Auth-&gt;&gt;User: Hi\u1ec3n th\u1ecb bi\u1ec3u m\u1eabu \u0111\u0103ng nh\u1eadp\r\n    User-&gt;&gt;Auth: Nh\u1eadp th\u00f4ng tin \u0111\u0103ng nh\u1eadp\r\n    Auth-&gt;&gt;User: Hi\u1ec3n th\u1ecb m\u00e0n h\u00ecnh \u0111\u1ed3ng \u00fd\r\n    User-&gt;&gt;Auth: C\u1ea5p quy\u1ec1n\r\n\r\n    Auth-&gt;&gt;Browser: Chuy\u1ec3n h\u01b0\u1edbng k\u00e8m m\u00e3 x\u00e1c th\u1ef1c\r\n    Browser-&gt;&gt;App: Callback m\u00e3 x\u00e1c th\u1ef1c\r\n\r\n    rect rgb(255, 240, 200)\r\n        Note over App,Auth: M\u00e1y ch\u1ee7 \u0111\u1ebfn m\u00e1y ch\u1ee7 (b\u1ea3o m\u1eadt)\r\n        App-&gt;&gt;Auth: \u0110\u1ed5i m\u00e3 l\u1ea5y token\r\n        Auth--&gt;&gt;App: Token truy c\u1eadp + Token l\u00e0m m\u1edbi\r\n    end\r\n\r\n    App-&gt;&gt;Browser: Thi\u1ebft l\u1eadp phi\u00ean\r\n    Browser--&gt;&gt;User: \u0110\u00e3 \u0111\u0103ng nh\u1eadp\r\n\r\n    loop G\u1ecdi API\r\n        Browser-&gt;&gt;App: Y\u00eau c\u1ea7u d\u1eef li\u1ec7u\r\n        App-&gt;&gt;Resource: G\u1ecdi API + Token truy c\u1eadp\r\n        \r\n        alt Token h\u1ee3p l\u1ec7\r\n            Resource--&gt;&gt;App: D\u1eef li\u1ec7u\r\n            App--&gt;&gt;Browser: Ph\u1ea3n h\u1ed3i\r\n        else Token h\u1ebft h\u1ea1n\r\n            Resource--&gt;&gt;App: 401\r\n            App-&gt;&gt;Auth: L\u00e0m m\u1edbi token\r\n            Auth--&gt;&gt;App: Token truy c\u1eadp m\u1edbi\r\n            App-&gt;&gt;Resource: Th\u1eed l\u1ea1i v\u1edbi token m\u1edbi\r\n            Resource--&gt;&gt;App: D\u1eef li\u1ec7u\r\n            App--&gt;&gt;Browser: Ph\u1ea3n h\u1ed3i\r\n        end\r\n    end\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqtU01rE0EYvhf6H156qlghlvaSQ6GmoKLGIgnocbMdMkN2Z7ebmWqO0kMPIqQUTx5MCKWlWrTgaRfxsIv\/Y\/6J7+zsl8k2vbiH3Z2Z5533+ZgZkkNJuE32mNUPLHd1BfCxpPC4dHskMONs1hZeAN1hPutbgWA28y0u4FHgva1d2PV9sIagokvehwMVnePnGY2nNgUaT3i\/pkIKqktexNMR2FRFF\/Aa8SDw98ZexL8iQ08GNtE1u\/tPoRNPGPC+HMVXfHXF4DXpBzs7GcsmtKkKz31YS8bJMRLiOLz2oafCGxy91AzWTGFWgbUopInMVfSFgVDh1IPktFJs4AiqtmlROVLRMQf654eKPiM4OVXhb75UW6Ul8mjCm\/hKgq3Ci\/SNrA\/1pu8LbRqF4G7a8QlL++n9PkBPDyS4Kvwq69h2q23axgNB458IE4zX6ru1l4thYqLfONUaozMsjH\/VtGktkbDEt0F86WKPGbxbYpdOqGU5Ts+yB4tgAw+ILSDo99Y3t7c3YHOrga9G455Z1E\/bEwS8IxLoMDcM6UpcWYBuObOOx2bmaZevRWUfcxRMfTJW0SeWUnJQ\/wiENyC8gtX6cwUdvQYikCOdN0ZyP5ty4gl6gH4wU0n4QWHgv+euQxmyFLoZ1vuUpVeh6lYRYjJGUnNJG6jjeT48VtFHpq9VSXbO8MrxxOv9HRw8FSdy3of8kjbLHQtdpdSyqvyzHJHh0O2Zj5qik3JVP\/nehYN7dTxyLlWf9lHwLN34jJVI4gxJ0VLbiO8pv6PnVuPhYq88\/+dFcvPJ351+JfDbLO2ggGsd9pTBUdmlrvS\/e6XPYPbzF+oqRQo=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNqtVMFO20AQvSPxDyNOoBIpILjkgJSWCiEhipLyAZv14Kzi7JqZNaH9+s54bcdOXPXSPSRrz5s3b96MzPheobd470xOZnt6AnJMFYOvtiuk9Ny8tTEQvHL7tjQUnXWl8RG+UtiNBuZlCYbhW+EwPY1AqrhWTP2\/RPoY41kgh4osKrC7z18eT08SVmVN7u4aHTMtaDdw9hRy52HnhPmH8p8ldAOTBFE0g0fvojMRoVB4gkigz7fAzBHaCDEcC+3RSWhWAwK53ya64IHUYo6tUg0K8rWmXa7DLlWFt0DbQS+J67uPSGAJMzHQmYL\/xmKDZ\/WYBYt+hOmB1MgSaeuYRdiBoONWa9uMNmtDhqPOzdsoWFMUK2M3LWvNQPnq\/Pr29hKub6byM51epKCe5yCGB\/FQrb5MEpOpkxgmXN\/gnNFWhL20NJfGm0+7Nj7HpEAMlOls0HMPrb11Yq1FZvgiHb4R8nqARp91hgxHv0QxFRvL+h50\/suW5ZiB6ywtQih1O2tXenIO3FukzYDMRHPYYbvks45HhDcd1Lr3CfubKSL81CB8mMJl+4CelrHz435Qti09XAUuda32KCwYmxL4Wcqe\/KvIzfTquEY7wMEgDmD9yT3jTj4\/Y72PGbbASL\/S9npJHMn4P1b4rFudPxEyh+g=\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29453\"><strong data-nodeid=\"29615\">C\u00e1c t\u00ednh n\u0103ng n\u00e2ng cao \u0111\u01b0\u1ee3c minh h\u1ecda<\/strong>:<\/p>\n<ul data-nodeid=\"29454\">\n<li data-nodeid=\"29455\">\n<p data-nodeid=\"29456\"><code data-backticks=\"1\" data-nodeid=\"29616\">rect<\/code>\u00a0t\u1ea1o m\u1ed9t ph\u1ea7n \u0111\u01b0\u1ee3c l\u00e0m n\u1ed5i b\u1eadt v\u1edbi m\u00e0u n\u1ec1n t\u00f9y ch\u1ec9nh<\/p>\n<\/li>\n<li data-nodeid=\"29457\">\n<p data-nodeid=\"29458\"><code data-backticks=\"1\" data-nodeid=\"29618\">Note over<\/code>\u00a0th\u00eam v\u0103n b\u1ea3n gi\u1ea3i th\u00edch<\/p>\n<\/li>\n<li data-nodeid=\"29459\">\n<p data-nodeid=\"29460\"><code data-backticks=\"1\" data-nodeid=\"29620\">loop<\/code>\u00a0hi\u1ec3n th\u1ecb c\u00e1c t\u01b0\u01a1ng t\u00e1c l\u1eb7p l\u1ea1i<\/p>\n<\/li>\n<li data-nodeid=\"29461\">\n<p data-nodeid=\"29462\"><code data-backticks=\"1\" data-nodeid=\"29622\">alt<\/code>\u00a0c\u00e1c kh\u1ed1i x\u1eed l\u00fd \u0111i\u1ec1u ki\u1ec7n l\u1ed7i<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"29463\">V\u00ed d\u1ee5 5: Lu\u1ed3ng Ra quy\u1ebft \u0111\u1ecbnh v\u1edbi Subgraphs<\/h3>\n<p data-nodeid=\"29464\">\u0110\u1ed1i v\u1edbi c\u00e1c quy tr\u00ecnh l\u00e0m vi\u1ec7c ph\u1ee9c t\u1ea1p c\u00f3 nhi\u1ec1u giai \u0111o\u1ea1n, vi\u1ec7c s\u1eed d\u1ee5ng subgraphs gi\u00fap t\u1ed5 ch\u1ee9c bi\u1ec3u \u0111\u1ed3 m\u1ed9t c\u00e1ch h\u1ee3p l\u00fd.<\/p>\n<p id=\"lKDEEZn\"><img alt=\"\" class=\"alignnone size-full wp-image-25250\" decoding=\"async\" height=\"893\" loading=\"lazy\" sizes=\"auto, (max-width: 488px) 100vw, 488px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f754e86fa5.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f754e86fa5.png 488w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f754e86fa5-164x300.png 164w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f754e86fa5-82x150.png 82w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f754e86fa5-400x732.png 400w\" width=\"488\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Mermaid<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNp1z0FLwzAUB\/C74Hd4zPMOItHhQWmbdhNEytxFSg9p89IFQzOa9DCs3921aVmcNqfwfu+9P69q2GEPO3p9Badn2qIaCouwlYpDumcGF876F2SvsrYQaY45LJdPEGbbtoYdGmtcIcrcZNBYKVhpczeMNXefyxyKB6WPf4JoNoLV8G5ZJevK7Y+HwJfa4mmBlXoKP4\/GQ1\/yNdQhZcY8f5816bX7QNPB2stIG83bst+XX\/a+6Q422VYrVbDy8\/97oiGT\/jrRHhVCAEIq9XiDt4II9CWclWhW6CQrQXDlSzwrySjiDokgvqxHYYTfswdfNtOMwALxBzfVleU=\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Mermaid<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNp9kMFOwkAURfcm\/sMLbnTBwpgqcaGBFkqCC40sSJouSjvTmVCmTRkWRFz5BX6AidgVJiQaWNHlGP+jf+KUQhgN+FY3c969c\/P82IkItI3DA5AzGHb91UPJpA6Fr+cwW04YdMTbCLws\/WR+qVjMp2rdDcWUQ18kcHxDGT+xoVy+gpqlE2kbQY9m6VMfOMnSWYF0S4mCQbZMGERyedq3i1zEvEL826cd58kMesShSiHDUgEE4p3JcgsKPP7+yNIX+eU9d3zK\/KJNfVdR4GLmEpAyiextdn3laDy01FVXzKUSr4xIuWD+9ePW0MgNY13Mx2Du6HUbh97Q5TRk9l9Pi+RZY2hazVBmy0ITd\/d59FUp49fF+ChAUAVMg+DyCJ1iDSOV1PYSfS8xNqSCNVRRSX0vaawJPkMa1lRiromjeefOhUqaGw9GXYR+AGue3u4=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-mermaid\" data-nodeid=\"29465\"><code class=\"language-mermaid\" data-language=\"mermaid\" class=\"language-mermaid\">graph TD\r\n    subgraph \"Giai \u0111o\u1ea1n X\u00e2y d\u1ef1ng\"\r\n        A[Qu\u00e9t m\u00e3 (Lint)] --&gt; B[Ch\u1ea1y ki\u1ec3m th\u1eed] --&gt; C[X\u00e2y d\u1ef1ng s\u1ea3n ph\u1ea9m]\r\n    end\r\n    \r\n    subgraph \"Giai \u0111o\u1ea1n Tri\u1ec3n khai\"\r\n        D[Tri\u1ec3n khai l\u00ean m\u00f4i tr\u01b0\u1eddng Staging] --&gt; E[Ch\u1ea1y ki\u1ec3m th\u1eed t\u00edch h\u1ee3p]\r\n        E --&gt; F{Ki\u1ec3m th\u1eed c\u00f3 th\u00e0nh c\u00f4ng?}\r\n        F --&gt;|C\u00f3| G[Tri\u1ec3n khai l\u00ean Production]\r\n        F --&gt;|Kh\u00f4ng| H[Ho\u00e0n t\u00e1c]\r\n    end\r\n    \r\n    C --&gt; D\r\n    \r\n    style A fill:#e1f5fe\r\n    style B fill:#e1f5fe\r\n    style C fill:#e1f5fe\r\n    style D fill:#e8f5e8\r\n    style E fill:#e8f5e8\r\n    style F fill:#f3e5f5\r\n    style G fill:#a5d6a7\r\n    style H fill:#ffebee\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNp9kMFOwkAURfcm\/sMLbnTBwpgqcaGBFkqCC40sSJouSjvTmVCmTRkWRFz5BX6AidgVJiQaWNHlGP+jf+KUQhgN+FY3c969c\/P82IkItI3DA5AzGHb91UPJpA6Fr+cwW04YdMTbCLws\/WR+qVjMp2rdDcWUQ18kcHxDGT+xoVy+gpqlE2kbQY9m6VMfOMnSWYF0S4mCQbZMGERyedq3i1zEvEL826cd58kMesShSiHDUgEE4p3JcgsKPP7+yNIX+eU9d3zK\/KJNfVdR4GLmEpAyiextdn3laDy01FVXzKUSr4xIuWD+9ePW0MgNY13Mx2Du6HUbh97Q5TRk9l9Pi+RZY2hazVBmy0ITd\/d59FUp49fF+ChAUAVMg+DyCJ1iDSOV1PYSfS8xNqSCNVRRSX0vaawJPkMa1lRiromjeefOhUqaGw9GXYR+AGue3u4=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNp1z0FLwzAUB\/C74Hd4zPMOItHhQWmbdhNEytxFSg9p89IFQzOa9DCs3921aVmcNqfwfu+9P69q2GEPO3p9Badn2qIaCouwlYpDumcGF876F2SvsrYQaY45LJdPEGbbtoYdGmtcIcrcZNBYKVhpczeMNXefyxyKB6WPf4JoNoLV8G5ZJevK7Y+HwJfa4mmBlXoKP4\/GQ1\/yNdQhZcY8f5816bX7QNPB2stIG83bst+XX\/a+6Q422VYrVbDy8\/97oiGT\/jrRHhVCAEIq9XiDt4II9CWclWhW6CQrQXDlSzwrySjiDokgvqxHYYTfswdfNtOMwALxBzfVleU=\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29466\"><strong data-nodeid=\"29630\">Th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t<\/strong>: \u0110\u1ed1i v\u1edbi quy tr\u00ecnh l\u00e0m vi\u1ec7c c\u00f3 5+ c\u00f4ng vi\u1ec7c, h\u00e3y s\u1eed d\u1ee5ng subgraphs \u0111\u1ec3 nh\u00f3m c\u00e1c b\u01b0\u1edbc li\u00ean quan.<\/p>\n<h2 data-nodeid=\"29467\">Xu\u1ea5t b\u1ea3n l\u00ean OpenDocs qua Pipeline<\/h2>\n<p data-nodeid=\"29468\">Khi bi\u1ec3u \u0111\u1ed3 c\u1ee7a b\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng, vi\u1ec7c xu\u1ea5t b\u1ea3n ch\u1ec9 c\u1ea7n m\u1ed9t c\u00fa nh\u1ea5p chu\u1ed9t:<\/p>\n<ol data-nodeid=\"29469\">\n<li data-nodeid=\"29470\">\n<p data-nodeid=\"29471\"><strong data-nodeid=\"29641\">G\u1eedi v\u00e0o Pipeline<\/strong>: Trong VPasCode, nh\u1ea5p v\u00e0o &#8220;G\u1eedi v\u00e0o OpenDocs Pipeline&#8221;.<\/p>\n<\/li>\n<li data-nodeid=\"29472\">\n<p data-nodeid=\"29473\"><strong data-nodeid=\"29650\">Nh\u1eadn x\u00e9t t\u00f9y ch\u1ecdn<\/strong>: Th\u00eam ng\u1eef c\u1ea3nh nh\u01b0 &#8220;v2.1 \u2013 \u0110\u00e3 c\u1eadp nh\u1eadt lu\u1ed3ng x\u00e1c th\u1ef1c&#8221; \u0111\u1ec3 gi\u00fap x\u00e1c \u0111\u1ecbnh phi\u00ean b\u1ea3n.<\/p>\n<\/li>\n<li data-nodeid=\"29474\">\n<p data-nodeid=\"29475\"><strong data-nodeid=\"29655\">Ch\u00e8n v\u00e0o OpenDocs<\/strong>: Trong OpenDocs, ch\u1ec9nh s\u1eeda t\u00e0i li\u1ec7u c\u1ee7a b\u1ea1n, nh\u1ea5p v\u00e0o Ch\u00e8n &gt; Pipeline v\u00e0 ch\u1ecdn bi\u1ec3u \u0111\u1ed3 c\u1ee7a b\u1ea1n t\u1eeb danh s\u00e1ch t\u00e0i s\u1ea3n.<\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"29476\">Pipeline lo\u1ea1i b\u1ecf s\u1ef1 c\u1ed3ng k\u1ec1nh c\u1ee7a vi\u1ec7c t\u1ea3i xu\u1ed1ng v\u00e0 t\u1ea3i l\u00ean th\u1ee7 c\u00f4ng. N\u00f3 duy tr\u00ec kh\u1ea3 n\u0103ng ch\u1ec9nh s\u1eeda c\u00e1c m\u00f4 h\u00ecnh c\u1ee7a b\u1ea1n v\u00e0 \u0111\u1ea3m b\u1ea3o m\u1ecdi b\u00ean li\u00ean quan \u0111\u1ec1u xem phi\u00ean b\u1ea3n thi\u1ebft k\u1ebf m\u1edbi nh\u1ea5t.<\/p>\n<h2 data-nodeid=\"29477\">T\u00ednh n\u0103ng h\u1ed7 tr\u1ee3 b\u1edfi AI<\/h2>\n<p data-nodeid=\"29478\">Kh\u1ea3 n\u0103ng AI c\u1ee7a Visual Paradigm \u0111\u01b0a vi\u1ec7c t\u1ea1o bi\u1ec3u \u0111\u1ed3 l\u00ean m\u1ed9t t\u1ea7m cao m\u1edbi:<\/p>\n<p data-nodeid=\"29479\"><strong data-nodeid=\"29669\">Nh\u1eadp l\u1ec7nh th\u00e0nh bi\u1ec3u \u0111\u1ed3<\/strong>: Trong OpenDocs, s\u1eed d\u1ee5ng tr\u1ee3 l\u00fd \u1ea3o AI \u0111\u1ec3 t\u1ea1o bi\u1ec3u \u0111\u1ed3 t\u1eeb ng\u00f4n ng\u1eef t\u1ef1 nhi\u00ean. V\u00ed d\u1ee5, nh\u1eadp &#8220;T\u1ea1o bi\u1ec3u \u0111\u1ed3 tr\u00ecnh t\u1ef1 cho lu\u1ed3ng x\u1eed l\u00fd thanh to\u00e1n&#8221; v\u00e0 AI s\u1ebd t\u1ea1o m\u00e3, sau \u0111\u00f3 b\u1ea1n c\u00f3 th\u1ec3 tinh ch\u1ec9nh trong VPasCode.<\/p>\n<p data-nodeid=\"29480\"><strong data-nodeid=\"29674\">S\u1eeda l\u1ed7i m\u00e3 b\u1eb1ng AI<\/strong>: \u0110\u00e3 m\u1eafc l\u1ed7i c\u00fa ph\u00e1p? AI c\u00f3 th\u1ec3 ph\u00e1t hi\u1ec7n v\u00e0 \u0111\u1ec1 xu\u1ea5t c\u00e1c c\u00e1ch s\u1eeda.<\/p>\n<p data-nodeid=\"29481\"><strong data-nodeid=\"29679\">D\u1ecbch thu\u1eadt b\u1eb1ng AI<\/strong>: C\u1ea7n b\u1ea3n \u0111\u1ecba h\u00f3a t\u00e0i li\u1ec7u? S\u1eed d\u1ee5ng AI \u0111\u1ec3 d\u1ecbch c\u00e1c nh\u00e3n bi\u1ec3u \u0111\u1ed3 sang nhi\u1ec1u ng\u00f4n ng\u1eef.<\/p>\n<h2 data-nodeid=\"29482\">Th\u1ef1c ti\u1ec5n t\u1ed1t nh\u1ea5t v\u00e0 m\u1eb9o<\/h2>\n<p data-nodeid=\"29483\">\u0110\u1ec3 t\u1ed1i \u0111a h\u00f3a hi\u1ec7u qu\u1ea3, h\u00e3y tu\u00e2n theo c\u00e1c th\u1ef1c ti\u1ec5n t\u1ed1t nh\u1ea5t sau:<\/p>\n<ul data-nodeid=\"29484\">\n<li data-nodeid=\"29485\">\n<p data-nodeid=\"29486\"><strong data-nodeid=\"29688\">S\u1eed d\u1ee5ng ti\u00eau \u0111\u1ec1 m\u00f4 t\u1ea3<\/strong>: Th\u00eam ti\u00eau \u0111\u1ec1 cho c\u00e1c bi\u1ec3u \u0111\u1ed3 c\u1ee7a b\u1ea1n \u0111\u1ec3 t\u0103ng t\u00ednh r\u00f5 r\u00e0ng trong t\u00e0i li\u1ec7u.<\/p>\n<\/li>\n<li data-nodeid=\"29487\">\n<p data-nodeid=\"29488\"><strong data-nodeid=\"29693\">T\u1eadn d\u1ee5ng b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n Pipeline<\/strong>: Trong OpenDocs, s\u1eed d\u1ee5ng b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n Pipeline \u0111\u1ec3 t\u1ed5 ch\u1ee9c c\u00e1c bi\u1ec3u \u0111\u1ed3 \u0111\u00e3 g\u1eedi.<\/p>\n<\/li>\n<li data-nodeid=\"29489\">\n<p data-nodeid=\"29490\"><strong data-nodeid=\"29698\">L\u1eb7p l\u1ea1i v\u1edbi n\u00fat c\u00e2y b\u00fat<\/strong>: N\u1ebfu bi\u1ec3u \u0111\u1ed3 c\u1ea7n c\u1eadp nh\u1eadt, h\u00e3y nh\u1ea5p v\u00e0o bi\u1ec3u t\u01b0\u1ee3ng c\u00e2y b\u00fat trong OpenDocs \u0111\u1ec3 m\u1edf l\u1ea1i n\u00f3 trong VPasCode. Th\u1ef1c hi\u1ec7n thay \u0111\u1ed5i, g\u1eedi l\u1ea1i v\u00e0 thay th\u1ebf phi\u00ean b\u1ea3n c\u0169 m\u1ed9t c\u00e1ch li\u1ec1n m\u1ea1ch.<\/p>\n<\/li>\n<li data-nodeid=\"29491\">\n<p data-nodeid=\"29492\"><strong data-nodeid=\"29703\">Gi\u1eef bi\u1ec3u \u0111\u1ed3 c\u00f3 ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n<\/strong>: V\u00ec bi\u1ec3u \u0111\u1ed3 d\u1ef1a tr\u00ean m\u00e3, b\u1ea1n c\u00f3 th\u1ec3 theo d\u00f5i thay \u0111\u1ed5i trong Git, gi\u00fap d\u1ec5 d\u00e0ng ho\u00e0n t\u00e1c ho\u1eb7c so s\u00e1nh c\u00e1c phi\u00ean b\u1ea3n.<\/p>\n<\/li>\n<\/ul>\n<h2 data-nodeid=\"29493\">K\u1ebft lu\u1eadn<\/h2>\n<p data-nodeid=\"29494\">Vi\u1ec7c t\u00edch h\u1ee3p VPasCode v\u00e0 OpenDocs \u0111\u1ea1i di\u1ec7n cho m\u1ed9t b\u01b0\u1edbc ti\u1ebfn l\u1edbn trong t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt. B\u1eb1ng c\u00e1ch coi bi\u1ec3u \u0111\u1ed3 l\u00e0 m\u00e3, b\u1ea1n \u0111\u1ea1t \u0111\u01b0\u1ee3c \u0111\u1ed9 ch\u00ednh x\u00e1c, ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n v\u00e0 s\u1ef1 d\u1ec5 d\u00e0ng trong c\u1eadp nh\u1eadt. Pipeline li\u1ec1n m\u1ea1ch lo\u1ea1i b\u1ecf c\u00e1c b\u01b0\u1edbc th\u1ee7 c\u00f4ng, cho ph\u00e9p k\u1ef9 s\u01b0 v\u00e0 nh\u00e0 v\u0103n t\u1eadp trung v\u00e0o n\u1ed9i dung thay v\u00ec \u0111\u1ecbnh d\u1ea1ng.<\/p>\n<p class=\"\" data-nodeid=\"29495\">H\u00e3y b\u1eaft \u0111\u1ea7u b\u1eb1ng c\u00e1ch th\u1eed nghi\u1ec7m c\u00e1c bi\u1ec3u \u0111\u1ed3 Mermaid \u0111\u01a1n gi\u1ea3n trong VPasCode v\u00e0 g\u1eedi ch\u00fang \u0111\u1ebfn OpenDocs. Khi b\u1ea1n \u0111\u00e3 quen thu\u1ed9c, h\u00e3y kh\u00e1m ph\u00e1 c\u00e1c t\u00ednh n\u0103ng AI v\u00e0 t\u00edch h\u1ee3p v\u1edbi h\u1ec7 sinh th\u00e1i r\u1ed9ng l\u1edbn h\u01a1n c\u1ee7a Visual Paradigm. V\u1edbi quy tr\u00ecnh l\u00e0m vi\u1ec7c n\u00e0y, t\u00e0i li\u1ec7u c\u1ee7a b\u1ea1n s\u1ebd kh\u00f4ng c\u00f2n l\u00e0 m\u1ed9t suy ngh\u0129 ph\u1ee5\u2014it s\u1ebd tr\u1edf th\u00e0nh m\u1ed9t ph\u1ea7n s\u1ed1ng \u0111\u1ed9ng v\u00e0 thi\u1ebft y\u1ebfu trong quy tr\u00ecnh ph\u00e1t tri\u1ec3n c\u1ee7a b\u1ea1n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 d\u1eabn d\u1eaft b\u1ea1n qua to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1ea1o c\u00e1c bi\u1ec3u \u0111\u1ed3 chuy\u00ean nghi\u1ec7p b\u1eb1ng c\u00fa ph\u00e1p Mermaid trong VPasCode v\u00e0 xu\u1ea5t b\u1ea3n ch\u00fang m\u1ed9t c\u00e1ch li\u1ec1n m\u1ea1ch v\u00e0o c\u01a1 s\u1edf ki\u1ebfn th\u1ee9c c\u1ee7a b\u1ea1n tr\u00ean OpenDocs. Ch\u00fang t\u00f4i s\u1ebd bao g\u1ed3m to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1eeb thi\u1ebft [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[65,71,70],"tags":[],"class_list":["post-11748","post","type-post","status-publish","format-standard","hentry","category-ai","category-opendocs","category-vpascode","loop-entry","clr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs - Visual Paradigm Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs - Visual Paradigm Blog\" \/>\n<meta property=\"og:description\" content=\"H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 d\u1eabn d\u1eaft b\u1ea1n qua to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1ea1o c\u00e1c bi\u1ec3u \u0111\u1ed3 chuy\u00ean nghi\u1ec7p b\u1eb1ng c\u00fa ph\u00e1p Mermaid trong VPasCode v\u00e0 xu\u1ea5t b\u1ea3n ch\u00fang m\u1ed9t c\u00e1ch li\u1ec1n m\u1ea1ch v\u00e0o c\u01a1 s\u1edf ki\u1ebfn th\u1ee9c c\u1ee7a b\u1ea1n tr\u00ean OpenDocs. Ch\u00fang t\u00f4i s\u1ebd bao g\u1ed3m to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1eeb thi\u1ebft [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-09T10:21:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png\" \/>\n<meta name=\"author\" content=\"Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/\",\"url\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/\",\"name\":\"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs - Visual Paradigm Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png\",\"datePublished\":\"2026-07-09T10:21:34+00:00\",\"dateModified\":\"2026-07-09T10:21:34+00:00\",\"author\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#primaryimage\",\"url\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png\",\"contentUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.visual-paradigm.com\/vn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#website\",\"url\":\"https:\/\/blog.visual-paradigm.com\/vn\/\",\"name\":\"Visual Paradigm Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.visual-paradigm.com\/vn\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"caption\":\"Admin\"},\"url\":\"https:\/\/blog.visual-paradigm.com\/vn\/author\/vpadminuser\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs - Visual Paradigm Blog","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:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/","og_locale":"vi_VN","og_type":"article","og_title":"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs - Visual Paradigm Blog","og_description":"H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 d\u1eabn d\u1eaft b\u1ea1n qua to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1ea1o c\u00e1c bi\u1ec3u \u0111\u1ed3 chuy\u00ean nghi\u1ec7p b\u1eb1ng c\u00fa ph\u00e1p Mermaid trong VPasCode v\u00e0 xu\u1ea5t b\u1ea3n ch\u00fang m\u1ed9t c\u00e1ch li\u1ec1n m\u1ea1ch v\u00e0o c\u01a1 s\u1edf ki\u1ebfn th\u1ee9c c\u1ee7a b\u1ea1n tr\u00ean OpenDocs. Ch\u00fang t\u00f4i s\u1ebd bao g\u1ed3m to\u00e0n b\u1ed9 quy tr\u00ecnh t\u1eeb thi\u1ebft [&hellip;]","og_url":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/","og_site_name":"Visual Paradigm Blog","article_published_time":"2026-07-09T10:21:34+00:00","og_image":[{"url":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png","type":"","width":"","height":""}],"author":"Admin","twitter_card":"summary_large_image","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Admin","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"6 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/","url":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/","name":"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs - Visual Paradigm Blog","isPartOf":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#primaryimage"},"image":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png","datePublished":"2026-07-09T10:21:34+00:00","dateModified":"2026-07-09T10:21:34+00:00","author":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6"},"breadcrumb":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#primaryimage","url":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png","contentUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a4f75e873185.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-code-to-clarity-a-beginners-guide-to-seamless-diagramming-with-vpascode-and-opendocs-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.visual-paradigm.com\/vn\/"},{"@type":"ListItem","position":2,"name":"T\u1eeb M\u00e3 \u0111\u1ebfn S\u1ef1 R\u00f5 R\u00e0ng: H\u01b0\u1edbng D\u1eabn Cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u V\u1ec1 Vi\u1ec7c T\u1ea1o Bi\u1ec3u \u0110\u1ed3 M\u01b0\u1ee3t M\u00e0 V\u1edbi VPasCode v\u00e0 OpenDocs"}]},{"@type":"WebSite","@id":"https:\/\/blog.visual-paradigm.com\/vn\/#website","url":"https:\/\/blog.visual-paradigm.com\/vn\/","name":"Visual Paradigm Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.visual-paradigm.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Person","@id":"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6","name":"Admin","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","caption":"Admin"},"url":"https:\/\/blog.visual-paradigm.com\/vn\/author\/vpadminuser\/"}]}},"modified_by":"Admin","_links":{"self":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/posts\/11748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/comments?post=11748"}],"version-history":[{"count":0,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/posts\/11748\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/media?parent=11748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/categories?post=11748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/tags?post=11748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}