<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>API &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<atom:link href="https://myifew.com/tag/api/feed/" rel="self" type="application/rss+xml" />
	<link>https://myifew.com</link>
	<description></description>
	<lastBuildDate>Fri, 27 Mar 2020 07:17:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.3</generator>

<image>
	<url>https://myifew.com/wp-content/uploads/2018/07/cropped-logo6-ts-32x32.png</url>
	<title>API &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<link>https://myifew.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>รวบรวม API ข้อมูลผู้ติดเชื้อ COVID-19 ในไทยและทั่วโลก</title>
		<link>https://myifew.com/5658/covid-19-api-resource-center-world-and-thailand/</link>
					<comments>https://myifew.com/5658/covid-19-api-resource-center-world-and-thailand/#comments</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Fri, 27 Mar 2020 07:17:36 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[API Document]]></category>
		<category><![CDATA[COVID-19]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=5658</guid>

					<description><![CDATA[ช่วงแรกๆ ที่ COVID-19 ระบาดอยู่ในจีน ยังไม่ค่อยมีข้อมูลอะไรมาก และมักเป็นข้อมูลของจีนส่วนใหญ่ แต่พอระบาดทั่วโลกปุ๊บ สารพัด Dashboard และ Open Data ก็มีเพรียบเลย วันนี้เห็นข้อมูล API Open Data ที่ทาง&#8230;]]></description>
										<content:encoded><![CDATA[
<p>ช่วงแรกๆ ที่ COVID-19 ระบาดอยู่ในจีน ยังไม่ค่อยมีข้อมูลอะไรมาก และมักเป็นข้อมูลของจีนส่วนใหญ่ แต่พอระบาดทั่วโลกปุ๊บ สารพัด Dashboard และ Open Data ก็มีเพรียบเลย </p>



<p>วันนี้เห็นข้อมูล API Open Data ที่ทาง Postman รวบรวมมา น่าสนใจดี เป็นแหล่งจากต้นทางของพวก WHO หรือองค์กรภาครัฐต่างๆ ข้อมูลผู้ติดเชื้อ เสียชีวิตจาก COVID-19 เผื่อมีใครจะไปพัฒนาต่อ จะได้เกิดประโยชน์และเชื่อถือได้</p>



<p>ปล. ผลคัดมาเฉพาะที่มีข้อมูลทั้งโลก และข้อมูลของประเทศไทยนะ</p>



<span id="more-5658"></span>



<h2 class="wp-block-heading">API ข้อมูล COVID-19 ทั่วโลก</h2>



<h3 class="wp-block-heading">NovelCOVID API (ไม่ต้องใช้ Token Key)</h3>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1548" height="914" src="https://myifew.com/wp-content/uploads/2020/03/covid-api-NovelCOVID.png" alt="" class="wp-image-5660"/></figure>



<p>รวบรวมจำนวนผู้ติดเชื้อ เสียชีวิต แบบทั้งโลก และแบบแยกรายประเทศ</p>



<p><strong>คู่มือการเรียกใช้ API</strong><br><a href="https://documenter.getpostman.com/view/8854915/SzS7R6uu?version=latest">https://documenter.getpostman.com/view/8854915/SzS7R6uu?version=latest</a></p>



<p><strong>ตัวอย่างข้อมูลทั้งโลก</strong><br>&#8211; จำนวนผู้ติดเชื้อ<br>&#8211; จำนวนผู้เสียชีวิต<br>&#8211; จำนวนผู้ได้รับการรักษาแล้ว<br>&#8211; Timestamp update ล่าสุด</p>



<p><strong>ตัวอย่างข้อมูลแบบแยกแต่ละประเทศ</strong> (ไม่มีบอกเวลา update ล่าสุด)<br>&#8211; จำนวนผู้ติดเชื้อรวม <br>&#8211; จำนวนผู้ติดเชื้อในวันนี้ <br>&#8211; จำนวนผู้เสียชีวิตรวม<br>&#8211; จำนวนผู้เสียชีวิตในวันนี้ <br>&#8211; จำนวนผู้ได้รับการรักษาแล้ว<br>&#8211; lat/long </p>



<h3 class="wp-block-heading">Coronavirus Smartable (smartable.ai) (ไม่ต้องใช้ Token Key)</h3>



<figure class="wp-block-image size-large"><img decoding="async" width="1564" height="1280" src="https://myifew.com/wp-content/uploads/2020/03/covid-api-Smartable-AI.png" alt="" class="wp-image-5661"/></figure>



<p>รวบรวมจำนวนผู้ติดเชื้อ แบบแยกรายประเทศ และแสดงรายการย้อนหลังรายวัน</p>



<p><strong>คู่มือการเรียกใช้ API</strong><br><a href="https://documenter.getpostman.com/view/8854915/SzS7R74q?version=latest">https://documenter.getpostman.com/view/8854915/SzS7R74q?version=latest</a></p>



<p><strong>ตัวอย่างข้อมูลแบบแยกรายประเทศ</strong><br>&#8211; จำนวนผู้ติดเชื้อรวม <br>&#8211; จำนวนผู้เสียชีวิตรวม<br>&#8211; จำนวนผู้ได้รับการรักษาแล้ว<br>&#8211; วันที่ update ล่าสุด<br>&#8211; แสดงรายการย้อนหลังรายวัน ผู้ติดเชื้อ ผู้เสียชีวิต ผู้ได้รับการรักษา<br>&#8211; lat/long </p>



<h3 class="wp-block-heading">Health API: COVID-19 (health-api.com) (ไม่ต้องใช้ Token Key)</h3>



<figure class="wp-block-image size-large"><img decoding="async" width="824" height="490" src="https://myifew.com/wp-content/uploads/2020/03/covid-api-health-api.png" alt="" class="wp-image-5662"/></figure>



<p>รวบรวมจำนวนผู้ติดเชื้อ เสียชีวิต แบบผลรวมทั้งโลก  แบบแสดงทุกประเทศ และแบบแยกรายประเทศ</p>



<p><strong>คู่มือการเรียกใช้ API</strong><br><a href="https://documenter.getpostman.com/view/8854915/SzS7R74s?version=latest">https://documenter.getpostman.com/view/8854915/SzS7R74s?version=latest</a></p>



<p><strong>ตัวอย่างข้อมูลทั้งโลก</strong><br>&#8211; จำนวนผู้ติดเชื้อ<br>&#8211; จำนวนผู้เสียชีวิต<br>&#8211; จำนวนผู้ได้รับการรักษาแล้ว<br>&#8211; Timestamp update ล่าสุด</p>



<h3 class="wp-block-heading">Coronavirus Data API (thevirustracker.com) (ไม่ต้องใช้ Token Key)</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1814" height="1384" src="https://myifew.com/wp-content/uploads/2020/03/covid-api-thevirustracker.png" alt="" class="wp-image-5663"/></figure>



<p>รวบรวมจำนวนผู้ติดเชื้อ เสียชีวิต แบบผลรวมทั้งโลก แบบแสดงทุกประเทศพร้อมรายการย้อนหลัง และแบบแยกรายประเทศพร้อมรายการย้อนหลัง (ไม่มีผลรวมแยกรายประเทศ)</p>



<p><strong>คู่มือการเรียกใช้ API</strong><br><a href="https://documenter.getpostman.com/view/8854915/SzS7R74n?version=latest">https://documenter.getpostman.com/view/8854915/SzS7R74n?version=latest</a></p>



<p><strong>ตัวอย่างข้อมูลแบบแยกรายประเทศพร้อมข้อมูลย้อนหลัง</strong><br>&#8211; จำนวนผู้ติดเชื้อรวม <br>&#8211; จำนวนผู้เสียชีวิตรวม<br>&#8211; จำนวนผู้ได้รับการรักษาแล้ว<br>&#8211; จำนวนผู้ติดเชื้อในแต่ละวัน<br>&#8211; จำนวนผู้เสียชีวิตในแต่ละวัน<br>&#8211; วันที่ update ล่าสุด</p>



<h3 class="wp-block-heading">Coronavirus COVID19 API (ไม่ต้องใช้ Token Key)</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1682" height="1210" src="https://myifew.com/wp-content/uploads/2020/03/covid-api-api-covid19apicom.png" alt="" class="wp-image-5659"/></figure>



<p>รวบรวมจำนวนผู้ติดเชื้อ(เท่านั้น) แบบผลรวมทั้งโลก แบบแสดงทุกประเทศ และแบบแยกรายประเทศ (มีแบบที่แสดง Real Time ด้วยนะ)</p>



<p><strong>คู่มือการเรียกใช้ API</strong><br><a href="https://documenter.getpostman.com/view/10808728/SzS8rjbc?version=latest">https://documenter.getpostman.com/view/10808728/SzS8rjbc?version=latest</a></p>



<p><strong>ตัวอย่างข้อมูลแบบแยกรายประเทศพร้อมข้อมูลย้อนหลัง</strong><br>&#8211; จำนวนผู้ติดเชื้อในแต่ละวัน<br>&#8211; lat/long<br>&#8211; วันที่ update ล่าสุด</p>



<h2 class="wp-block-heading">API ข้อมูล COVID-19 ในไทย</h2>



<h3 class="wp-block-heading">สำนักงานพัฒนารัฐบาลดิจิทัล (องค์การมหาชน) (ต้องใช้ API Key Token)</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1542" height="1276" src="https://myifew.com/wp-content/uploads/2020/03/covid-api-opend-data-go-th.png" alt="" class="wp-image-5664"/></figure>



<p>รวบรวมจำนวนผู้ติดเชื้อ ผู้เสียชีวิต ผู้ได้รับการรักษาแล้ว แสดงรายการเคสว่ามีที่มาที่ไปอย่างไร เป็นใคร เพศอะไร  ค่อนข้างละเอียดเลยครับ และมี API สรุปรายจังหวัดด้วยครับ</p>



<p>โดยข้อมูลดึงมาจาก กรมควบคุมโรค กระทรวงสาธารณสุข (<a href="https://covid19.th-stat.com/">https://covid19.th-stat.com/</a>) อีกทีหนึ่ง</p>



<p><strong>คู่มือการสมัครขอ API Key Token</strong><br><a href="https://opendata.data.go.th/pages/data-go-th-api">https://opendata.data.go.th/pages/data-go-th-api</a></p>



<p><strong>คู่มือการเรียกใช้ API</strong><br><a href="https://opendata.data.go.th/dataset/covid-19-daily">https://opendata.data.go.th/dataset/covid-19-daily</a></p>



<p><strong>ตัวอย่างข้อมูลรายคนแบบย้อนหลัง</strong><br>&#8211; เพศ<br>&#8211; อายุ<br>&#8211; สัญชาติ<br>&#8211; อาชีพ<br>&#8211; จังหวัดอาศัย<br>&#8211; ที่มาของการติดเชื้อ<br>&#8211; วันที่ประกาศพบว่าติดเชื้อ</p>



<p><strong>Reference</strong></p>



<ul class="wp-block-list"><li><a href="https://covid-19-apis.postman.com/">https://covid-19-apis.postman.com/</a></li><li><a href="https://github.com/postmanlabs/covid-19-apis">https://github.com/postmanlabs/covid-19-apis</a></li><li><a href="https://covid19.th-stat.com/">https://covid19.th-stat.com/</a></li><li><a href="https://opendata.data.go.th/dataset/covid19">https://opendata.data.go.th/dataset/covid19</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/5658/covid-19-api-resource-center-world-and-thailand/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>สร้าง API Document กับ .NET Core ง่ายๆ ด้วย  Swagger</title>
		<link>https://myifew.com/4376/generate-api-document-dotnet-core-with-swagger/</link>
					<comments>https://myifew.com/4376/generate-api-document-dotnet-core-with-swagger/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Tue, 06 Feb 2018 17:06:14 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[API Document]]></category>
		<category><![CDATA[Swagger]]></category>
		<category><![CDATA[Testing Tools]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=4376</guid>

					<description><![CDATA[เมื่อโปรแกรเมอร์เขียน API เสร็จ และส่งให้ทีมอื่นๆไปใช้งานต่อ จะต้องอธิบายวิธีการใช้งานด้วย แต่ที่ต้องทำ คือควรมีเอกสารการใช้งาน หรือเรียกว่า API Document ส่งให้กับผู้ใช้เสมอๆ หรือเก็บไว้อ้างอิงที่ใดที่หนึ่ง

แต่กระนั้น โปรแกรมเมอร์อย่างเรามักไม่ชอบทำ API Document หรอกครับ เขียนๆไปแค่ให้มี สิ่งที่ได้มักเป็นเอกสารที่ใช้งานได้บ้างไม่ได้บ้าง เพราะเป็นภาษาที่คนเขียนเข้าใจแค่ตัวเอง หรือตัวอย่างไม่ชัดเจน หรือมีข้อมูลใช้งานไม่ครบถ้วน หนักไปกว่านั้นคือ บ่นว่าไม่มีเวลา แล้วก็ไม่ทำมันซะเลย (แต่มีเวลาไปอธิบายให้ผู้ใช้ทีละคนๆ 555)

ดังนั้น จะดีกว่าไหม ถ้าเราเขียนโค้ด API เสร็จ แล้วมีเครื่องมือสร้าง API Document ให้เราได้เลยอัตโนมัติ, อ่ะ ตอบแทนละกัน "ดีว่ะ!"]]></description>
										<content:encoded><![CDATA[<p>เมื่อโปรแกรเมอร์เขียน API เสร็จ และส่งให้ทีมอื่นๆไปใช้งานต่อ จะต้องอธิบายวิธีการใช้งานด้วย แต่ที่ต้องทำ คือควรมีเอกสารการใช้งาน หรือเรียกว่า API Document ส่งให้กับผู้ใช้เสมอๆ หรือเก็บไว้อ้างอิงที่ใดที่หนึ่ง</p>
<p>แต่กระนั้น โปรแกรมเมอร์อย่างเรามักไม่ชอบทำ API Document หรอกครับ เขียนๆไปแค่ให้มี สิ่งที่ได้มักเป็นเอกสารที่ใช้งานได้บ้างไม่ได้บ้าง เพราะเป็นภาษาที่คนเขียนเข้าใจแค่ตัวเอง หรือตัวอย่างไม่ชัดเจน หรือมีข้อมูลใช้งานไม่ครบถ้วน หนักไปกว่านั้นคือ บ่นว่าไม่มีเวลา แล้วก็ไม่ทำมันซะเลย (แต่มีเวลาไปอธิบายให้ผู้ใช้ทีละคนๆ 555)</p>
<p>ดังนั้น จะดีกว่าไหม ถ้าเราเขียนโค้ด API เสร็จ แล้วมีเครื่องมือสร้าง API Document ให้เราได้เลยอัตโนมัติ, อ่ะ ตอบแทนละกัน &#8220;ดีว่ะ!&#8221;<span id="more-4376"></span></p>
<p>เครื่องมือหนึ่งที่ผมจะแนะนำในบล็อกนี้ ชื่อว่า Swagger ซึ่งมันสามารถสร้างเอกสารการใช้งาน API (API Document) และเครื่องมือทดสอบให้เราได้ในทันที (Testing Tools) โดยมันจะแปลงจากคำสั่งในโค้ดของเราออกมาให้นั่นเอง</p>
<p>ในบล็อกนี้ผมลองใช้ Swagger กับ .NET Core 2 นะครับ สำหรับภาษาอื่นๆ สามารถหาข้อมูลเพิ่มเติมได้ที่ <a href="https://swagger.io/open-source-integrations/" target="_blank" rel="noopener">Swagger Open Source Integrations</a></p>
<p>ว่าแล้ว เรามาเริ่มทำตามขั้นตอนกันเลย</p>
<h2>ติดตั้ง NuGet packages</h2>
<p>ให้เราเข้าไปที่โฟลเดอร์ของ API เราก่อน และพิมพ์คำสั่ง add package ดังนี้</p>
<p>[code lang=&#8221;shell&#8221;]dotnet add api.csproj package Swashbuckle.AspNetCore[/code]</p>
<h2>ติดตั้ง Configure Swagger ใน Middleware</h2>
<p>เพิ่มโค้ดเข้าไปใน ConfigureServices() ของไฟล์ Startup.cs ดังนี้</p>
<p>[code lang=&#8221;csharp&#8221;]<br />
            services.AddSwaggerGen(c =&gt;<br />
            {<br />
                c.SwaggerDoc(&quot;v1&quot;, new Info { Title = &quot;My API&quot;, Version = &quot;v1&quot; });</p>
<p>                var basePath = AppContext.BaseDirectory;<br />
                var xmlPath = Path.Combine(basePath, &quot;MyApi.xml&quot;);<br />
                c.IncludeXmlComments(xmlPath);<br />
            });<br />
[/code]</p>
<p>จากนั้นให้ใส่ using package ไว้ด้วย (โดยปกติ Editor จะเตือนให้เพิ่มด้วย) ดังนี้</p>
<p>[code lang=&#8221;csharp&#8221;]using Swashbuckle.AspNetCore.Swagger;[/code]</p>
<p>จะได้ดังภาพนี้</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4397" src="https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configurationservice-1200x539.png" alt="" width="1024" height="460" srcset="https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configurationservice-1200x539.png 1200w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configurationservice-600x269.png 600w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configurationservice-1024x460.png 1024w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configurationservice-768x345.png 768w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configurationservice-700x314.png 700w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configurationservice.png 1822w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>ซึ่ง Title คือชื่อของหน้าเอกสาร ในที่นี้ผมใช้ชื่อ &#8220;My API&#8221; ส่วนกลุ่มบรรทัดล่างเป็นการขอเปิดใช้งาน Customize ข้อความในรูปแบบของเราเอง ด้วยการระบุข้อมูลเป็น Comment ลงไปในโค้ด (และ Swagger จะทำการเก็บข้อความเหล่านั้นตามไฟล์ XML ที่เราระบุไว้)</p>
<p>จากนั้น เพิ่มโค้ดเข้าไปใน Configure() ของไฟล์ Startup.cs ดังนี้</p>
<p>[code lang=&#8221;csharp&#8221;]<br />
            app.UseSwagger();<br />
            app.UseSwaggerUI(c =&gt;<br />
            {<br />
                c.SwaggerEndpoint(&quot;/swagger/v1/swagger.json&quot;, &quot;My API V1&quot;);<br />
            });<br />
[/code]</p>
<p>จะได้ดังภาพนี้</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4396" src="https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configuration-1200x590.png" alt="" width="1024" height="503" srcset="https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configuration-1200x590.png 1200w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configuration-600x295.png 600w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configuration-1024x504.png 1024w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configuration-768x378.png 768w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configuration-700x344.png 700w, https://myifew.com/wp-content/uploads/2018/02/add-swagger-to-configuration.png 1638w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>เป็นอันเสร็จ ให้ทำการ build และ run ใหม่อีกครั้ง เพื่อลองใช้งาน</p>
<h2>ทดลองใช้งาน Swagger</h2>
<p>ให้เราเปิด browser เข้าไปที่ (แก้ url/port ตามที่คุณตั้งไว้ด้วยนะ)</p>
<blockquote><p>http://&lt;localhost:port&gt;/swagger/v1/swagger.json</p></blockquote>
<p>จะเจอข้อความ JSON ที่เป็นชุดคำสั่งของ Swagger</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4399" src="https://myifew.com/wp-content/uploads/2018/02/swagger-json-raw-1200x442.png" alt="" width="1024" height="377" srcset="https://myifew.com/wp-content/uploads/2018/02/swagger-json-raw-1200x442.png 1200w, https://myifew.com/wp-content/uploads/2018/02/swagger-json-raw-600x221.png 600w, https://myifew.com/wp-content/uploads/2018/02/swagger-json-raw-1024x377.png 1024w, https://myifew.com/wp-content/uploads/2018/02/swagger-json-raw-768x283.png 768w, https://myifew.com/wp-content/uploads/2018/02/swagger-json-raw-700x258.png 700w, https://myifew.com/wp-content/uploads/2018/02/swagger-json-raw.png 2870w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>แต่ถ้าต้องการดูสวยงามด้วย Swagger UI ให้เข้าไปที่</p>
<blockquote><p>http://&lt;localhost:port&gt;/swagger/</p></blockquote>
<p>จะได้หน้าตาสวยงามแบบนี้ครับ</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4403" src="https://myifew.com/wp-content/uploads/2018/02/swagger-ui-1200x715.png" alt="" width="1024" height="610" srcset="https://myifew.com/wp-content/uploads/2018/02/swagger-ui-1200x715.png 1200w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-600x358.png 600w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-1024x611.png 1024w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-768x458.png 768w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-700x417.png 700w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui.png 2858w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>มันจะแสดงรายการ API ของเราออกมาทั้งหมด ตาม Controller/Method/Route ที่เราได้เขียนไปในโค้ดเลยครับ<br />
และเมื่อเรากดเข้าไปดูในรายละเอียดของแต่ละ API มันก็จะแสดงวิธีการ Access, Data Type, Respond Status, Respond Data, Respond Type ครบถ้วน ดังรูป</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4400" src="https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-1200x681.png" alt="" width="1024" height="581" srcset="https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-1200x681.png 1200w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-600x341.png 600w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-1024x581.png 1024w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-768x436.png 768w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-700x397.png 700w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get.png 2872w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>หรืออีกตัวอย่างหนึ่ง ผมลองดึงข้อมูลสมาชิกหมายเลข 2 ออกมา ซึ่งในโค้ดผมบอกว่าต้องระบุ Parameter ให้ด้วย ดังนั้น ตัว Swagger มันก็ได้สร้าง Input ให้ผมได้กรอก Parameter นั้นให้อัตโนมัติเลย</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4401" src="https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-with-parameter-1200x685.png" alt="" width="1024" height="585" srcset="https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-with-parameter-1200x685.png 1200w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-with-parameter-600x342.png 600w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-with-parameter-1024x584.png 1024w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-with-parameter-768x438.png 768w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-with-parameter-700x399.png 700w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-get-with-parameter.png 2860w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>คราวนี้ลองมาดูการส่งข้อมูลแบบ HTTP Post บ้าง ซึ่งมันจะไปดึง Data Structure ของ Model ออกมาให้เราเป็นตัวอย่าง (ตามรูปด้านล่าง กล่องสีเหลืองด้านซ้าย) เมื่อกดที่ตัวอย่าง มันจะมากรอกให้ในช่อง Input ซ้ายมือ เราก็ทำการแก้ไขข้อมูลที่ต้องการใช้งาน ซึ่งในที่นี้ผมทดสอบการเพิ่มข้อมูลสมาชิก เมื่อกรอกเสร็จและกดปุ่ม &#8220;Tyr it out!&#8221; มันก็จะแสดงผลการทำงานออกมาให้เราดังรูปด้านล่าง</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4402" src="https://myifew.com/wp-content/uploads/2018/02/swagger-test-post-data-892x1200.png" alt="" width="892" height="1200" srcset="https://myifew.com/wp-content/uploads/2018/02/swagger-test-post-data-892x1200.png 892w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-post-data-600x807.png 600w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-post-data-761x1024.png 761w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-post-data-768x1033.png 768w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-post-data-520x700.png 520w, https://myifew.com/wp-content/uploads/2018/02/swagger-test-post-data.png 2038w" sizes="auto, (max-width: 892px) 100vw, 892px" /></p>
<h2>การ Customize Document</h2>
<p>ถ้าสังเกตดีๆ มี API ตัวหนึ่งที่มีข้อความโผล่มา ว่า &#8220;Get Member information from id&#8221; ซึ่งอันนี้ผมทำการ Customize เขียนเพิ่มคำอธิบายเข้าไป</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4406" src="https://myifew.com/wp-content/uploads/2018/02/swagger-ui-summary-1200x191.png" alt="" width="1024" height="163" srcset="https://myifew.com/wp-content/uploads/2018/02/swagger-ui-summary-1200x191.png 1200w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-summary-600x96.png 600w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-summary-1024x163.png 1024w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-summary-768x122.png 768w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-summary-700x111.png 700w, https://myifew.com/wp-content/uploads/2018/02/swagger-ui-summary.png 2028w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>ซึ่งในโค้ด API ที่เราต้องการอธิบายเพิ่มเติม ใส่แค่ /// (triple slash) และระบุ  tag &lt;summary&gt; พร้อมข้อความอธิบายสั้นๆว่า API นี้ทำอะไร (ตามภาพ) เท่านั้นเอง, ถ้าอยากยกตัวอย่างหรืออธิบายเพิ่ม สามารถใส่ &lt;remarks&gt; ได้ และยังมี tag อื่นๆ ที่คุณสามารถไปดูได้ที่ <a href="https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs=netcore-cli#customize--extend" target="_blank" rel="noopener">Customize &amp; extend</a></p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-4405" src="https://myifew.com/wp-content/uploads/2018/02/swagger-comment-1200x364.png" alt="" width="1024" height="311" srcset="https://myifew.com/wp-content/uploads/2018/02/swagger-comment-1200x364.png 1200w, https://myifew.com/wp-content/uploads/2018/02/swagger-comment-600x182.png 600w, https://myifew.com/wp-content/uploads/2018/02/swagger-comment-1024x310.png 1024w, https://myifew.com/wp-content/uploads/2018/02/swagger-comment-768x233.png 768w, https://myifew.com/wp-content/uploads/2018/02/swagger-comment-700x212.png 700w, https://myifew.com/wp-content/uploads/2018/02/swagger-comment.png 1624w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h2>สรุป</h2>
<p>Swagger เป็นเครื่องมืออำนวยความสะดวกในการสร้าง API Document เพื่อลดเวลาการเขียนเอง แต่ทั้งนี้ มีเรื่องของ Security ที่ต้องป้องกันไม่ให้คนอื่นเข้ามาได้ หรือให้ดูได้เฉพาะ Development Environment เท่านั้น รวมถึง ถ้าจะให้ Document สมบูรณ์ เราก็ควรต้องเขียนโค้ดให้ถูกต้องโดยเฉพาะเรื่องของการตั้งชื่อตัวแปร ชื่อฟังก์ชั่น โมเดล ฯลฯ เพราะข้อมูลใน Document จะอ่านง่ายแค่ไหน มันสะท้อนจากโค้ดของเรานั่นเอง</p>
<p>&nbsp;</p>
<p>—</p>
<p>Reference: <a href="“https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger”" target="“_blank”">Microsoft.com</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/4376/generate-api-document-dotnet-core-with-swagger/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
