{"id":2789,"date":"2023-04-10T05:20:07","date_gmt":"2023-04-10T10:20:07","guid":{"rendered":"https:\/\/www.dpriver.com\/blog\/?p=2789"},"modified":"2023-04-10T05:22:07","modified_gmt":"2023-04-10T10:22:07","slug":"export-e-r-diagram-with-sqlflow-rest-api","status":"publish","type":"post","link":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/","title":{"rendered":"Export E-R Diagram with SQLFlow REST API"},"content":{"rendered":"\n<p><strong><a href=\"https:\/\/www.gudusoft.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Gudu SQLFlow<\/a><\/strong> is an analysis software for analyzing SQL statements and discovering <strong><a href=\"https:\/\/www.dpriver.com\/blog\/2022\/05\/11\/best-data-lineage-tools\/\" target=\"_blank\" rel=\"noreferrer noopener\">data lineage<\/a><\/strong> relationships. It is often used with <a href=\"https:\/\/www.gudusoft.com\/what-is-metadata-management\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>metadata management<\/strong><\/a> tools and is a basic tool for <a href=\"https:\/\/www.gudusoft.com\/challenges-facing-enterprise-data-governance\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>enterprise data governance<\/strong><\/a>. Check <a href=\"https:\/\/www.dpriver.com\/blog\/2022\/08\/20\/introduction-of-gudu-sqlflow\/\" target=\"_blank\" rel=\"noreferrer noopener\">this introduction blog<\/a> if you don\u2019t know much about Gudu SQLFlow.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/02\/logo_hennaname_gray_282_82-1-e1677249664483.png\" alt=\"\" class=\"wp-image-2692\" width=\"433\" height=\"126\" \/><\/figure>\n\n\n\n<p><a href=\"https:\/\/sqlflow.gudusoft.com\/#\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQLFlow<\/a> is capable to convert <strong>SQL to Entity-Relation(ER) Diagram<\/strong> as well as to visualize the relations between tables and fields so that you can quickly understand the design model of the database and conduct efficient team communication. You can either go to <a href=\"https:\/\/sqlflow.gudusoft.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/sqlflow.gudusoft.com<\/a> to visualize your database with E-R Diagram or you can use SQLFlow REST API to generate and to export the ER Diagram.<\/p>\n\n\n\n<p>In this blog, we will show you how to generate the E-R diagram with SQLFlow REST API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The API Endpoint<\/h2>\n\n\n\n<p>The related SQLFlow Api to generate ER diagram image is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/sqlflow\/generation\/sqlflow\/erdiagramSelectGraph\/image<\/code><\/pre>\n\n\n\n<p>This API can directly take SQL statement text as input or it can read session id and generate the ER diagram based on the given session Id. Check the following parameter table:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><strong>Parameter Name<\/strong><\/td><td><strong>Type<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td>userId<\/td><td>string<\/td><td>the user id of sqlflow client<\/td><\/tr><tr><td>token<\/td><td>string<\/td><td>The token is only used when connecting to the SQLFlow Cloud server, it is not used when connect to the SQLFlow on-premise version.<\/td><\/tr><tr><td>sessionId<\/td><td>string<\/td><td>graph session Id<\/td><\/tr><tr><td>sqltext<\/td><td>string<\/td><td>SQL statement text <\/td><\/tr><tr><td>jobId<\/td><td>string<\/td><td>give the job Id if need to use the job settings<\/td><\/tr><tr><td>database<\/td><td>string<\/td><td>database<\/td><\/tr><tr><td>dbvendor<\/td><td>string<\/td><td>database vendor<\/td><\/tr><tr><td>defaultDatabase<\/td><td>string<\/td><td>default databse when there&#8217;s no metadata<\/td><\/tr><tr><td>defaultSchema<\/td><td>string<\/td><td>default schema<\/td><\/tr><tr><td>defaultServer<\/td><td>string<\/td><td>default server<\/td><\/tr><tr><td>normalizeIdentifier<\/td><td>boolean<\/td><td>whether normalize identifier<\/td><\/tr><tr><td>server<\/td><td>string<\/td><td>server to filter <\/td><\/tr><tr><td>table<\/td><td>string<\/td><td>table to filter<\/td><\/tr><tr><td>schema<\/td><td>string<\/td><td>schema to filter<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Let\u2019s say from database, we have got the following DDL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE VIEW vsal \nAS \n  SELECT a.deptno                  \"Department\", \n         a.num_emp \/ b.total_count \"Employees\", \n         a.sal_sum \/ b.total_sal   \"Salary\" \n  FROM   (SELECT deptno, \n                 Count()  num_emp, \n                 SUM(sal) sal_sum \n          FROM   scott.emp \n          WHERE  city = 'NYC' \n          GROUP  BY deptno) a, \n         (SELECT Count()  total_count, \n                 SUM(sal) total_sal \n          FROM   scott.emp \n          WHERE  city = 'NYC') b \n;\n\nINSERT ALL\n\tWHEN ottl &lt; 100000 THEN\n\t\tINTO small_orders\n\t\t\tVALUES(oid, ottl, sid, cid)\n\tWHEN ottl &gt; 100000 and ottl &lt; 200000 THEN\n\t\tINTO medium_orders\n\t\t\tVALUES(oid, ottl, sid, cid)\n\tWHEN ottl &gt; 200000 THEN\n\t\tinto large_orders\n\t\t\tVALUES(oid, ottl, sid, cid)\n\tWHEN ottl &gt; 290000 THEN\n\t\tINTO special_orders\nSELECT o.order_id oid, o.customer_id cid, o.order_total ottl,\no.sales_rep_id sid, c.credit_limit cl, c.cust_email cem\nFROM orders o, customers c\nWHERE o.customer_id = c.customer_id;\n\ncreate table scott.dept(   \n  deptno     number(2,0),   \n  dname      varchar2(14),   \n  loc        varchar2(13),   \n  constraint pk_dept primary key (deptno)   \n);\n\ncreate table scott.emp(   \n  empno    number(4,0),   \n  ename    varchar2(10),   \n  job      varchar2(9),   \n  mgr      number(4,0),   \n  hiredate date,   \n  sal      number(7,2),   \n  comm     number(7,2),   \n  deptno   number(2,0),   \n  constraint pk_emp primary key (empno),\n  constraint fk_deptno foreign key (deptno) references dept (deptno) \n);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Generate ER diagram with SQL text<\/h2>\n\n\n\n<p>To generate ER diagram from SQL statement text, simply put the text in <code>sqltext<\/code> parameter.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Sample:<\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location 'https:\/\/&lt;sqlflow url&gt;\/gspLive_backend\/sqlflow\/generation\/sqlflow\/erdiagramSelectGraph\/image' \\\n--header 'accept: image\/*' \\\n--form 'userId=\"gudu|0123456789\"' \\\n--form 'dbvendor=\"dbvoracle\"' \\\n--form 'sqltext=\"CREATE VIEW vsal \nAS \n  SELECT a.deptno                  \\\"Department\\\", \n         a.num_emp \/ b.total_count \\\"Employees\\\", \n         a.sal_sum \/ b.total_sal   \\\"Salary\\\" \n  FROM   (SELECT deptno, \n                 Count()  num_emp, \n                 SUM(sal) sal_sum \n          FROM   scott.emp \n          WHERE  city = '\\''NYC'\\'' \n          GROUP  BY deptno) a, \n         (SELECT Count()  total_count, \n                 SUM(sal) total_sal \n          FROM   scott.emp \n          WHERE  city = '\\''NYC'\\'') b \n;\n\nINSERT ALL\n\tWHEN ottl &lt; 100000 THEN\n\t\tINTO small_orders\n\t\t\tVALUES(oid, ottl, sid, cid)\n\tWHEN ottl &gt; 100000 and ottl &lt; 200000 THEN\n\t\tINTO medium_orders\n\t\t\tVALUES(oid, ottl, sid, cid)\n\tWHEN ottl &gt; 200000 THEN\n\t\tinto large_orders\n\t\t\tVALUES(oid, ottl, sid, cid)\n\tWHEN ottl &gt; 290000 THEN\n\t\tINTO special_orders\nSELECT o.order_id oid, o.customer_id cid, o.order_total ottl,\no.sales_rep_id sid, c.credit_limit cl, c.cust_email cem\nFROM orders o, customers c\nWHERE o.customer_id = c.customer_id;\n\ncreate table scott.dept(   \n  deptno     number(2,0),   \n  dname      varchar2(14),   \n  loc        varchar2(13),   \n  constraint pk_dept primary key (deptno)   \n);\n\ncreate table scott.emp(   \n  empno    number(4,0),   \n  ename    varchar2(10),   \n  job      varchar2(9),   \n  mgr      number(4,0),   \n  hiredate date,   \n  sal      number(7,2),   \n  comm     number(7,2),   \n  deptno   number(2,0),   \n  constraint pk_emp primary key (empno),\n  constraint fk_deptno foreign key (deptno) references dept (deptno) \n);\"'<\/code><\/pre>\n\n\n\n<p><strong><em>Hint<\/em><\/strong>:\u00a0<a href=\"https:\/\/www.gudusoft.com\/sqlflow-on-premise-version\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQLFlow On-Premise<\/a>\u00a0is used in the above capture, hence token is not required and only userId is given in param. Please refer to\u00a0<a href=\"https:\/\/docs.gudusoft.com\/3.-api-docs\/prerequisites\" target=\"_blank\" rel=\"noreferrer noopener\">this document<\/a>\u00a0to check how to get the userid and the token.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Result:<\/h5>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"904\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410180153-1024x904.png\" alt=\"\" class=\"wp-image-2796\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410180153-1024x904.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410180153-300x265.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410180153-768x678.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410180153.png 1231w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Generate ER diagram using session Id<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Create SQLFlow Job<\/h3>\n\n\n\n<p>The following endpoint is to create a SQLFlow:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/sqlflow\/job\/submitUserJob<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"1016\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181459-1024x1016.png\" alt=\"\" class=\"wp-image-2799\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181459-1024x1016.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181459-300x298.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181459-150x150.png 150w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181459-768x762.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181459.png 1218w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Wait few seconds and If we check our job list, we should have this <em>demoJob2<\/em> in our job success list. You can verify that ethiter go to the SQLFlow interface or use another SQLFlow REST API <code>\/sqlflow\/job\/displayUserJobsSummary<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"345\" height=\"103\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181243.png\" alt=\"\" class=\"wp-image-2798\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181243.png 345w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181243-300x90.png 300w\" sizes=\"(max-width: 345px) 100vw, 345px\" \/><\/figure>\n\n\n\n<p>Great! After checking the SQLFlow web, we have confirmed the SQLFlow Job is succeeded.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Retrieve Data Session<\/h3>\n\n\n\n<p>Now we have our Job created and we need select our data now. To do that, invoke:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/sqlflow\/job\/displayUserJobGraph<\/code><\/pre>\n\n\n\n<p>Give the Job Id as the input and in the response of the above API, we will have the sessionId:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"986\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181530-1024x986.png\" alt=\"\" class=\"wp-image-2800\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181530-1024x986.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181530-300x289.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181530-768x740.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181530.png 1248w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Generate ER diagram<\/h3>\n\n\n\n<p>With the sessionId, now we can invoke <code>\/sqlflow\/generation\/sqlflow\/erdiagramSelectGraph\/image<\/code> to generate the selected data element.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location 'https:\/\/&lt;sqlflow url&gt;\/gspLive_backend\/sqlflow\/generation\/sqlflow\/erdiagramSelectGraph\/image' \\\n--header 'accept: image\/*' \\\n--form 'userId=\"gudu|0123456789\"' \\\n--form 'dbvendor=\"dbvoracle\"' \\\n--form 'sessionId=\"10fde6b3e234dbd3db95f27d8af255f64c863a096131ef416d998f0969534057_1681121651772\"'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"959\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181802-1024x959.png\" alt=\"\" class=\"wp-image-2801\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181802-1024x959.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181802-300x281.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181802-768x719.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/04\/\u5fae\u4fe1\u622a\u56fe_20230410181802.png 1256w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gudu SQLFlow is an analysis software for analyzing SQL statements and discovering data lineage relationships. It is often used with metadata management tools and is a basic tool for enterprise data governance. Check this introduction blog if you don\u2019t know much about Gudu SQLFlow. SQLFlow is capable to convert SQL to Entity-Relation(ER) Diagram as well as to visualize the relations between tables and fields so that you can quickly understand the design model of the database and conduct efficient team communication. You can either go to https:\/\/sqlflow.gudusoft.com to visualize your database with E-R Diagram or you can use SQLFlow REST\u2026<\/p>\n","protected":false},"author":6,"featured_media":2673,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[66,93],"tags":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Export E-R Diagram with SQLFlow REST API<\/title>\n<meta name=\"description\" content=\"Export E-R Diagram with SQLFlow REST API ER-diagram; sqlflow rest api; export sql image; visualize the database\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Export E-R Diagram with SQLFlow REST API\" \/>\n<meta property=\"og:description\" content=\"Export E-R Diagram with SQLFlow REST API ER-diagram; sqlflow rest api; export sql image; visualize the database\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL and Data Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-10T10:20:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-10T10:22:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/01\/image-5-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"557\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"leo gu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"leo gu\" \/>\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\":\"Organization\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\",\"name\":\"SQL and Data Blog\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"contentUrl\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"width\":251,\"height\":72,\"caption\":\"SQL and Data Blog\"},\"image\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"name\":\"SQL and Data Blog\",\"description\":\"SQL related blog for database professional\",\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/\",\"name\":\"Export E-R Diagram with SQLFlow REST API\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\"},\"datePublished\":\"2023-04-10T10:20:07+00:00\",\"dateModified\":\"2023-04-10T10:22:07+00:00\",\"description\":\"Export E-R Diagram with SQLFlow REST API ER-diagram; sqlflow rest api; export sql image; visualize the database\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.dpriver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Export E-R Diagram with SQLFlow REST API\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/\"},\"author\":{\"name\":\"leo gu\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14\"},\"headline\":\"Export E-R Diagram with SQLFlow REST API\",\"datePublished\":\"2023-04-10T10:20:07+00:00\",\"dateModified\":\"2023-04-10T10:22:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/\"},\"wordCount\":437,\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"articleSection\":[\"Data Governance\",\"SQLFlow\"],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14\",\"name\":\"leo gu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g\",\"caption\":\"leo gu\"},\"url\":\"https:\/\/www.dpriver.com\/blog\/author\/guyuanhao\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Export E-R Diagram with SQLFlow REST API","description":"Export E-R Diagram with SQLFlow REST API ER-diagram; sqlflow rest api; export sql image; visualize the database","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:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/","og_locale":"en_US","og_type":"article","og_title":"Export E-R Diagram with SQLFlow REST API","og_description":"Export E-R Diagram with SQLFlow REST API ER-diagram; sqlflow rest api; export sql image; visualize the database","og_url":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/","og_site_name":"SQL and Data Blog","article_published_time":"2023-04-10T10:20:07+00:00","article_modified_time":"2023-04-10T10:22:07+00:00","og_image":[{"width":800,"height":557,"url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/01\/image-5-1.png","type":"image\/png"}],"author":"leo gu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"leo gu","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.dpriver.com\/blog\/#organization","name":"SQL and Data Blog","url":"https:\/\/www.dpriver.com\/blog\/","sameAs":[],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","contentUrl":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","width":251,"height":72,"caption":"SQL and Data Blog"},"image":{"@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.dpriver.com\/blog\/#website","url":"https:\/\/www.dpriver.com\/blog\/","name":"SQL and Data Blog","description":"SQL related blog for database professional","publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/","url":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/","name":"Export E-R Diagram with SQLFlow REST API","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/#website"},"datePublished":"2023-04-10T10:20:07+00:00","dateModified":"2023-04-10T10:22:07+00:00","description":"Export E-R Diagram with SQLFlow REST API ER-diagram; sqlflow rest api; export sql image; visualize the database","breadcrumb":{"@id":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dpriver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Export E-R Diagram with SQLFlow REST API"}]},{"@type":"Article","@id":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/#article","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/"},"author":{"name":"leo gu","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14"},"headline":"Export E-R Diagram with SQLFlow REST API","datePublished":"2023-04-10T10:20:07+00:00","dateModified":"2023-04-10T10:22:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dpriver.com\/blog\/2023\/04\/export-e-r-diagram-with-sqlflow-rest-api\/"},"wordCount":437,"publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"articleSection":["Data Governance","SQLFlow"],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14","name":"leo gu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g","caption":"leo gu"},"url":"https:\/\/www.dpriver.com\/blog\/author\/guyuanhao\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/2789"}],"collection":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/comments?post=2789"}],"version-history":[{"count":8,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/2789\/revisions"}],"predecessor-version":[{"id":2804,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/2789\/revisions\/2804"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media\/2673"}],"wp:attachment":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media?parent=2789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/categories?post=2789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/tags?post=2789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}