{"id":19069,"date":"2021-11-11T16:48:28","date_gmt":"2021-11-11T09:48:28","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=19069"},"modified":"2022-01-04T05:26:08","modified_gmt":"2022-01-03T22:26:08","slug":"data-types-trong-raml","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html","title":{"rendered":"Data types trong RAML"},"content":{"rendered":"<p>Khi khai b\u00e1o c\u00e1c request parameter, path parameter, request body, response body, &#8230; trong RAML, ch\u00fang ta c\u1ea7n khai b\u00e1o ki\u1ec3u d\u1eef li\u1ec7u c\u1ee7a nh\u1eefng th\u00f4ng tin n\u00e0y. RAML \u0111\u1ecbnh ngh\u0129a nhi\u1ec1u lo\u1ea1i data types kh\u00e1c nhau gi\u00fap ch\u00fang ta c\u00f3 th\u1ec3 gi\u1ea3i quy\u1ebft nh\u1eefng nhu c\u1ea7u c\u1ee7a m\u00ecnh. Trong b\u00e0i vi\u1ebft n\u00e0y, ch\u00fang ta s\u1ebd c\u00f9ng t\u00ecm hi\u1ec3u v\u1ec1 data types trong RAML nh\u01b0 th\u1ebf n\u00e0o, c\u00e1c b\u1ea1n nh\u00e9!<\/p>\n<p>\u0110\u1ea7u ti\u00ean, c\u00e1c b\u1ea1n h\u00e3y nh\u00ecn v\u00e0o h\u00ecnh d\u01b0\u1edbi, t\u1ed5ng quan th\u00ec RAML \u0111\u1ecbnh ngh\u0129a nh\u1eefng lo\u1ea1i data types \u0111\u01b0\u1ee3c ph\u00e2n c\u1ea5p nh\u01b0 sau:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19071 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/11\/raml-data-types.png\" alt=\"\" width=\"700\" height=\"215\" \/><\/p>\n<p>Nh\u01b0 c\u00e1c b\u1ea1n th\u1ea5y, \u1edf top c\u1ee7a diagram tr\u00ean, ch\u00fang ta c\u00f3 data type l\u00e0 any. Th\u00f4ng tin \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a v\u1edbi type any s\u1ebd kh\u00f4ng c\u00f3 h\u1ea1n ch\u1ebf g\u00ec c\u1ea3, c\u00e1c b\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a s\u1ed1, ch\u1eef, \u0111\u1ed1i t\u01b0\u1ee3ng, b\u1ea5t c\u1ee9 ki\u1ec3u d\u1eef li\u1ec7u g\u00ec m\u00e0 c\u00e1c b\u1ea1n mu\u1ed1n.<\/p>\n<p>B\u00ean d\u01b0\u1edbi data type any, ch\u00fang ta c\u00f3 c\u00e1c data type chi ti\u1ebft, c\u1ee5 th\u1ec3 h\u01a1n, h\u1ea1n ch\u1ebf h\u01a1n n\u1ebfu th\u00f4ng tin \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a b\u1edfi nh\u1eefng data type n\u00e0y. Nh\u01b0 c\u00e1c b\u1ea1n th\u1ea5y, ch\u00fang ta c\u00f3 c\u00e1c scalar types, array, object, union, XSD schema v\u00e0 c\u1ea3 JSON schema.<\/p>\n<h3>Scalar types<\/h3>\n<p><strong>N\u00f3i n\u00f4m na scalar types l\u00e0 nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u \u0111\u01a1n gi\u1ea3n, kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a t\u1eeb nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u kh\u00e1c<\/strong>, v\u00ed d\u1ee5 nh\u01b0 boolean, string, null, file,&#8230; Gi\u00e1 tr\u1ecb c\u1ee7a nh\u1eefng th\u00f4ng tin \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a v\u1edbi nh\u1eefng scalar types n\u00e0y l\u00e0 single, boolean th\u00ec ch\u1ec9 c\u00f3 true, false; string th\u00ec gi\u00e1 tr\u1ecb ch\u1ec9 l\u00e0 c\u00e1c chu\u1ed7i&#8230;<\/p>\n<h4>Date-only<\/h4>\n<p>Ch\u00fang ta ch\u1ec9 khai b\u00e1o ng\u00e0y th\u00e1ng n\u0103m cho ki\u1ec3u d\u1eef li\u1ec7u n\u00e0y v\u00e0 tu\u00e2n theo format \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a theo chu\u1ea9n Internet d\u00e0nh cho th\u1eddi gian <a href=\"https:\/\/xml2rfc.tools.ietf.org\/public\/rfc\/html\/rfc3339.html#anchor14\" target=\"_blank\" rel=\"noopener\">\bRFC 3339<\/a> c\u00e1c b\u1ea1n nh\u00e9!<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  birthday:\r\n    type: date-only\r\n    example: 1987-06-24<\/pre>\n<h4>Time-only<\/h4>\n<p>Ng\u01b0\u1ee3c l\u1ea1i v\u1edbi date-only, \bki\u1ec3u d\u1eef li\u1ec7u n\u00e0y th\u00ec ch\u1ec9 cho ph\u00e9p ch\u00fang ta \u0111\u1ecbnh ngh\u0129a gi\u1edd ph\u00fat gi\u00e2y, n\u00f3 kh\u00f4ng h\u1ed7 tr\u1ee3 ng\u00e0y, th\u00e1ng, n\u0103m v\u1edbi timezone v\u00e0 n\u00f3 c\u0169ng tu\u00e2n theo format <a href=\"https:\/\/xml2rfc.tools.ietf.org\/public\/rfc\/html\/rfc3339.html#anchor14\" target=\"_blank\" rel=\"noopener\">\bRFC 3339<\/a> nha c\u00e1c b\u1ea1n!<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  lunchtime:\r\n    type: time-only\r\n    example: 12:30:00<\/pre>\n<h4>Datetime<\/h4>\n<p>C\u00f3 2 \u0111\u1ecbnh d\u1ea1ng \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 cho ki\u1ec3u d\u1eef li\u1ec7u datetime l\u00e0 <a href=\"http:\/\/xml2rfc.ietf.org\/public\/rfc\/html\/rfc3339.html#anchor14\" target=\"_blank\" rel=\"noopener\">RFC 3339<\/a> v\u00e0 <a href=\"https:\/\/www.ietf.org\/rfc\/rfc2616.txt\" target=\"_blank\" rel=\"noopener\">RFC 2616<\/a>. M\u1eb7c \u0111\u1ecbnh n\u1ebfu ch\u00fang ta kh\u00f4ng b\u00e1o format th\u00ec format \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng s\u1ebd l\u00e0 RFC 3339 c\u00e1c b\u1ea1n nh\u00e9!<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  created:\r\n    type: datetime\r\n    example: 2021-11-30T16:41:41.090Z<\/pre>\n<h4>Datetime-only<\/h4>\n<p>C\u00f3 th\u1ec3 nhi\u1ec1u b\u1ea1n s\u1ebd th\u1eafc m\u1eafc \u0111\u00e3 c\u00f3 ki\u1ec3u d\u1eef li\u1ec7u datetime r\u1ed3i th\u00ec ki\u1ec3u d\u1eef li\u1ec7u datetime-only c\u00f3 \u00fd ngh\u0129a g\u00ec? Th\u1eadt ra th\u00ec datetime-only l\u00e0 combine gi\u1eefa date-only v\u00e0 time-only th\u00f4i c\u00e1c b\u1ea1n, ch\u00fang \u0111\u01b0\u1ee3c ng\u0103n c\u00e1ch b\u1edfi ch\u1eef &#8220;T&#8221; v\u00e0 ki\u1ec3u d\u1eef li\u1ec7u n\u00e0y kh\u00f4ng h\u1ed7 tr\u1ee3 timezone c\u00e1c b\u1ea1n nh\u00e9!<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  pickup:\r\n    type: datetime-only\r\n    example: 2021-10-04T21:00:00<\/pre>\n<h4>Number<\/h4>\n<p>Number l\u00e0 ki\u1ec3u d\u1eef li\u1ec7u chung cho t\u1ea5t c\u1ea3 c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u li\u00ean quan \u0111\u1ebfn s\u1ed1. N\u00f3 cho ph\u00e9p ch\u00fang ta \u0111\u1ecbnh ngh\u0129a gi\u00e1 tr\u1ecb nh\u1ecf nh\u1ea5t minimum, gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t maximum, format l\u00e0 g\u00ec: int, int8, int16, int32, int64, long, float, double.<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  weight:\r\n    type: number\r\n    minimum: -1.1\r\n    maximum: 20.9\r\n    format: float<\/pre>\n<h4>Integer<\/h4>\n<p>\u0110\u00e2y l\u00e0 m\u1ed9t ki\u1ec3u d\u1eef li\u1ec7u k\u1ebf th\u1eeba ki\u1ec3u d\u1eef li\u1ec7u number v\u1edbi gi\u00e1 tr\u1ecb nguy\u00ean.<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  age:\r\n    type: integer\r\n    minimum: -3\r\n    maximum: 5\r\n    format: int8<\/pre>\n<h4>Boolean<\/h4>\n<p>Gi\u00e1 tr\u1ecb c\u1ee7a ki\u1ec3u d\u1eef li\u1ec7u ch\u1ec9 l\u00e0 true ho\u1eb7c false, th\u1ec3 hi\u1ec7n t\u00ednh \u0111\u00fang \u0111\u1eafn.<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  isMarried:\r\n    type: boolean<\/pre>\n<h4>String<\/h4>\n<p>Ch\u00fang ta c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a String theo pattern v\u1edbi minLength v\u00e0 maxLength, v\u00ed d\u1ee5 nh\u01b0 sau:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  name:\r\n    type: string\r\n    pattern: ^.+@.+\\..+$\r\n    minLength: 10\r\n    maxLength: 50<\/pre>\n<h4>Null<\/h4>\n<p>\u0110\u00e2y l\u00e0 ki\u1ec3u d\u1eef li\u1ec7u cho ph\u00e9p field \u0111\u01b0\u1ee3c kh\u00f4ng \u0111\u1ecbnh ngh\u0129a gi\u00e1 tr\u1ecb.<\/p>\n<p>V\u00ed d\u1ee5 nh\u01b0 n\u1ebfu c\u00e1c b\u1ea1n \u0111\u1ecbnh ngh\u0129a \u0111\u1ed1i t\u01b0\u1ee3ng Student v\u1edbi field name kh\u00f4ng \u0111\u01b0\u1ee3c null nh\u01b0 sau:<\/p>\n<pre class=\"lang:yaml decode:true\">types:\r\n  Student:\r\n    type: object\r\n    properties:\r\n      name: string\r\n      comment: string<\/pre>\n<p>th\u00ec c\u00e1c b\u1ea1n kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a example nh\u01b0 sau:<\/p>\n<pre class=\"lang:yaml mark:9 decode:true\">types:\r\n  Student:\r\n    type: object\r\n    properties:\r\n      name: string\r\n      comment: string\r\n    example:\r\n      name: Khanh\r\n      comment:<\/pre>\n<p>Ch\u00fang ta c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a \u0111\u1ed1i t\u01b0\u1ee3ng Student nh\u01b0 sau:<\/p>\n<pre class=\"lang:yaml mark:6 decode:true\">types:\r\n  Student:\r\n    type: object\r\n    properties:\r\n      name:\r\n      comment: nil | string<\/pre>\n<p>khi \u0111\u00f3, ch\u00fang ta c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a example nh\u01b0 sau:<\/p>\n<pre class=\"lang:yaml mark:9 decode:true\">types:\r\n  Student:\r\n    type: object\r\n    properties:\r\n      name:\r\n      comment: nil | string\r\n    example:\r\n      name: Khanh\r\n      comment:<\/pre>\n<h4>File<\/h4>\n<p>Ki\u1ec3u d\u1eef li\u1ec7u n\u00e0y d\u00e0nh cho vi\u1ec7c qu\u1ea3n l\u00fd c\u00e1c th\u00f4ng tin li\u00ean quan \u0111\u1ebfn file. Ch\u00fang ta c\u00f3 th\u1ec3 ch\u1ec9 \u0111\u1ecbnh \u0111\u1ecbnh d\u1ea1ng t\u1eadp tin, dung l\u01b0\u1ee3ng minLength v\u00e0 maxLength t\u00ednh theo byte cho ki\u1ec3u d\u1eef li\u1ec7u n\u00e0y.<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  avatar:\r\n    type: file\r\n    fileTypes: ['image\/jpeg', 'image\/png']\r\n    maxLength: 307200<\/pre>\n<h3>Array<\/h3>\n<p><strong>Ki\u1ec3u d\u1eef li\u1ec7u array th\u00ec gi\u00fap ch\u00fang ta \u0111\u1ecbnh ngh\u0129a m\u1ea3ng d\u1eef li\u1ec7u<\/strong>, c\u00f3 th\u1ec3 l\u00e0 m\u1ea3ng string, m\u1ea3ng number ho\u1eb7c th\u1eadm ch\u00ed l\u00e0 m\u1ea3ng c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng, gi\u1ed1ng nh\u01b0 trong Java \u0111\u00f3 c\u00e1c b\u1ea1n!<\/p>\n<p>C\u00e1c b\u1ea1n c\u1ea7n ch\u1ec9 \u0111\u1ecbnh r\u00f5 item trong array l\u00e0 ki\u1ec3u d\u1eef li\u1ec7u n\u00e0o, c\u00f3 c\u1ea7n unique hay kh\u00f4ng, v\u00e0 c\u00e1c b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 ch\u1ec9 \u0111\u1ecbnh gi\u1edbi h\u1ea1n s\u1ed1 l\u01b0\u1ee3ng item trong array b\u1eb1ng\u00a0minItems v\u00e0 maxItems.<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  Student:\r\n    type: object\r\n    properties:\r\n      name: string\r\n\r\n  Students:\r\n    type: Student[]\r\n    minItems: 1\r\n    uniqueItems: true\r\n    example:\r\n      - \r\n        name: Khanh\r\n      - \r\n        name: Phuc<\/pre>\n<h3>Object<\/h3>\n<p><strong>Object<\/strong> th\u00ec gi\u00fap ch\u00fang ta \u0111\u1ecbnh ngh\u0129a th\u00f4ng tin v\u1ec1 \u0111\u1ed1i t\u01b0\u1ee3ng, v\u1edbi nhi\u1ec1u properties thu\u1ed9c v\u1ec1 \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y. Trong nh\u1eefng v\u00ed d\u1ee5 tr\u00ean, m\u00ecnh c\u00f3 \u0111\u1ecbnh ngh\u0129a ki\u1ec3u d\u1eef li\u1ec7u object cho Student.<\/p>\n<p>V\u00ed d\u1ee5:<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  Student:\r\n    type: object\r\n    properties:\r\n      name: string<\/pre>\n<h3>Union<\/h3>\n<p><strong>Union<\/strong> l\u00e0 ki\u1ec3u d\u1eef li\u1ec7u gi\u00fap ch\u00fang ta c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a \bgi\u00e1 tr\u1ecb s\u1eed d\u1ee5ng nhi\u1ec1u lo\u1ea1i data types kh\u00e1c nhau.<\/p>\n<p>V\u00ed d\u1ee5, properties name trong \u0111\u1ed1i t\u01b0\u1ee3ng Student sau c\u00f3 th\u1ec3 c\u00f3 ki\u1ec3u d\u1eef li\u1ec7u l\u00e0 null ho\u1eb7c string.<\/p>\n<pre class=\"lang:yaml decode:true \">types:\r\n  Student:\r\n    type: object\r\n    properties:\r\n      name: nil | string<\/pre>\n<h3>XSD v\u00e0 JSON schema<\/h3>\n<p><strong>XSD v\u00e0 JSON schema<\/strong> th\u00ec gi\u00fap ch\u00fang ta \u0111\u1ecbnh ngh\u0129a data types s\u1eed d\u1ee5ng schema c\u1ee7a XML v\u00e0 JSON.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;19069&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Data types trong RAML&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Khi khai b\u00e1o c\u00e1c request parameter, path parameter, request body, response body, &#8230; trong RAML, ch\u00fang ta c\u1ea7n khai b\u00e1o ki\u1ec3u d\u1eef li\u1ec7u c\u1ee7a nh\u1eefng th\u00f4ng tin n\u00e0y. RAML \u0111\u1ecbnh ngh\u0129a nhi\u1ec1u lo\u1ea1i data types kh\u00e1c nhau gi\u00fap ch\u00fang ta c\u00f3 th\u1ec3 gi\u1ea3i quy\u1ebft nh\u1eefng&hellip; <a href=\"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":19026,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2150],"tags":[],"class_list":["post-19069","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raml","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Data types trong RAML - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 data types trong RAML.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data types trong RAML - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 data types trong RAML.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-11T09:48:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-03T22:26:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/11\/raml.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"638\" \/>\n\t<meta property=\"og:image:height\" content=\"479\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"Data types trong RAML\",\"datePublished\":\"2021-11-11T09:48:28+00:00\",\"dateModified\":\"2022-01-03T22:26:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html\"},\"wordCount\":1127,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/raml.jpeg\",\"articleSection\":[\"RAML\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html\",\"name\":\"Data types trong RAML - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/raml.jpeg\",\"datePublished\":\"2021-11-11T09:48:28+00:00\",\"dateModified\":\"2022-01-03T22:26:08+00:00\",\"description\":\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 data types trong RAML.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/raml.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/raml.jpeg\",\"width\":638,\"height\":479},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/data-types-trong-raml.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data types trong RAML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Data types trong RAML - Huong Dan Java","description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 data types trong RAML.","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:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html","og_locale":"en_US","og_type":"article","og_title":"Data types trong RAML - Huong Dan Java","og_description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 data types trong RAML.","og_url":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2021-11-11T09:48:28+00:00","article_modified_time":"2022-01-03T22:26:08+00:00","og_image":[{"width":638,"height":479,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/11\/raml.jpeg","type":"image\/jpeg"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"Data types trong RAML","datePublished":"2021-11-11T09:48:28+00:00","dateModified":"2022-01-03T22:26:08+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html"},"wordCount":1127,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/11\/raml.jpeg","articleSection":["RAML"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html","url":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html","name":"Data types trong RAML - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/11\/raml.jpeg","datePublished":"2021-11-11T09:48:28+00:00","dateModified":"2022-01-03T22:26:08+00:00","description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 data types trong RAML.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/11\/raml.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/11\/raml.jpeg","width":638,"height":479},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/vi\/data-types-trong-raml.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"Data types trong RAML"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/19069","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=19069"}],"version-history":[{"count":9,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/19069\/revisions"}],"predecessor-version":[{"id":19265,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/19069\/revisions\/19265"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/19026"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=19069"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=19069"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=19069"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}