AdvanceApplications and ToolsDeveloperFeaturedHTML5JavaScriptjQueryNewbieProgramming Language

API ต้อนรับฟุตบอลโลก World Cup in Brazil 2014 กับ footballjs

เข้าสู่ฤดูกาลแข่งขัน World Cup in Brazil 2014 แล้วนะครับ หลายคนอยากทำ API หน้าเว็บดึงตารางอัพเดต Score ก็ขอแนะนำ API OpenFootball และ FootballJS ครับ

Screen Shot 2557-06-12 at 10.07.58 AM

หลักการไม่มีอะไรมากครับ ก็แค่ใช้ Javascript เรียก Web Service แบบ JSON ผ่าน API REST ของ OpenFootball ครับ รายละเอียดก็ที่นี่ http://openfootball.github.io

Screen Shot 2557-06-12 at 10.08.51 AM

มันจะมีฐานข้อมูล การแข่งขันฟุตบอลทั่วโลก อย่าง football.db ให้เราได้ลองศึกษาครับ ซึ่งสามารถ Clone จาก Github ได้เลย โดยรายละเอียดก็มีดังนี้

วัตถุประสงค์คือการ อัพเดทแมชต์ของ World Cup in Brazil 2014 แล้วเรียก HTTP JSON API
ส่วน football.db นั้นเป็น Open Data ที่เราสามารถเรียกใช้ได้ฟรีครับ โดยมีเงื่อนไขภายใต้ Public Domain. No Rights Reserved. vs. © FIFA 2014. All Rights Reserved.

รูปแบบการส่งรับค่าก็คือ

GET /event/world.2014/teams

{
  "event": {
    "key":   "world.2014", "title": "World Cup 2014"
  },
  "teams": [
    { "key": "gre", "title": "Greece",      "code": "GRE" },
    { "key": "ned", "title": "Netherlands", "code": "NED" },
    { "key": "ger", "title": "Germany",     "code": "GER" },
    { "key": "por", "title": "Portugal",    "code": "POR" },
    ...
  ]
}

วิธีการ Code ก็คือการเรียกใช้ไฟล์ เหล่านี้

  • Matchday Widget Example – footballdb.widget.js – v1.0
  • Matchday Widget Example – footballdb.widget.js – v2.0
  • Web Components Machinery – New Web Standard Building Blocks
  • Matchday Widget Example – <football-js> – v3.0

แต่ในบทเรียนนี้ผม คงจะหยิบยกแค่ตัวอย่างง่ายๆ มาให้ลองเล่นกันก็คือ การสร้าง Widget หน้าเว็บไซต์ ซึ่งที่ผมเลือกใช้ก็คือ FootballJS ครับ

Screen Shot 2557-06-12 at 10.08.44 AM

ไฟล์ทั้งหมดที่เหมาะกับการเริ่มต้นก็นั้นก็คือ Project ของ FootBallJS

ดาวน์โหลดได้ที่: https://github.com/footballjs/
หรือเว็บไซต์ของเราก็ดาวน์โหลด Source Code ที่: https://www.daydev.com/download/footballjs.zip

วาง Project ลงที่ XMAPP หรือ APPSERV ครับ ทดสอบที่ http://localhost/footballjs

Screen Shot 2557-06-12 at 9.54.19 AM

แก้ไขไฟล์ index.html ส่วนของ

<football-js event='at.2013/14'></football-js>

จะเป็นการบอกสถานะการแข่งขันทันที โดย lib/polymer.min.js จะไปเรียก API แล้วทำการ เขียนไฟลฺ football-js.html ใหม่อีกครั้ง

ตัวอย่างดูได้ที่นี่
https://www.daydev.com/demo/footballjs/

อีกตัวคือ อันแรกที่เขียนว่า Football widgets in JavaScript using the football.db HTTP JSON(P) API
ให้ดาวน์โหลด Project มาครับ
ดาวน์โหลดได้ที่: https://github.com/footballjs/
หรือเว็บไซต์ของเราก็ดาวน์โหลด Source Code ที่: https://www.daydev.com/download/worldcup2014.zip

เปิดดูไฟล์หน่อย จะเห็น index.html เขียนแบบนี้ครับ

<!DOCTYPE html>
<html>
<head>
  <meta charset='UTF-8'>
  <title>World Cup in Brazil 2014 API</title>

  <script src='bower_components/jquery/dist/jquery.min.js'></script>
  <script src='bower_components/underscore/underscore.js'></script>
  <script src='bower_components/requirejs/require.js'></script>

  <style>
    .football-widget a
    {
      color: black;
      text-decoration: none;
    }

    .football-widget {
       border: 1px solid green;
       padding: 4px;
       margin: 10px;
    }
    
    .football-widget .rounds {
      margin-bottom: 10px;
    }
  </style>

  <script>
    require.config( {
      paths: {
        // 'text': 'libs/require-text-2.0.10'   // require.js text plugin
        'text': '../bower_components/requirejs-text/text'   // require.js text plugin
      },
      baseUrl: 'js'
    });

    require( ['football.widget', 'football.widget.today'],
                function( Widget, WidgetToday ) {

      $(document).ready( function() {

        Widget.create( '#world', { event: 'world.2014' } );
        Widget.create( '#at',   { event: 'at.2013_14' } );
        
        // option 2) show today's round or the last or the next
        Widget.create( '#de',   { event: 'de.2013_14', showRounds: false } );
        
        // option 3) widget with no event => show scheduled rounds for today (for all events)
        WidgetToday.create( '#rounds' );
      });

    }); // fn require
  </script>
  
  
</head>
<body>


<h1>Matchday World Cup in Brazil 2014</h1>

<div id='world'></div>

<!-- try another widget -->

<div id='at'></div>

<!-- try another widget -->

<div id='de'></div>

<!-- try another widget -->

<p>Any rounds scheduled today?</p>
<div id='rounds'></div>



</body>
</html>

ลองรัน http://localhost/worldcup2014 หรือ

Screen Shot 2557-06-12 at 10.09.26 AM

ดูตัวอย่างที่ทำไว้ที่

https://www.daydev.com/demo/worldcup2014/

ก็น่าจะช่วยเหลือคนที่อยากทำตารางบอลโลกกันได้ ผ่อนแรงไม่ต้องอัพเดต ไปอีกนานครับ ไม่ก็ https กับ SSL ไปเขียน Tab Facebook ได้ก็ง่ายๆ สบายใจ

 

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน