jQueryTips by Tee++;

  • Home
  • Videos
  • jQueryTips's Fans

Coding like playing a piano.

Subscribe RSS

Search

Search

Sponsored

jQueryTips on Social

Followers

hide
Chainnnn Pang25441 Dexteri@n Ton KanexKane Supachai JustDoIt Rut petchy Tophit anndrew Webmaster

Categories

hide
  • Programing
  • Database
  • Framework
  • Mobile Development
    • Titanium Mobile
    • PhoneGap
  • Life

Tag Cloud

hide
PHP JavaScript MySQL XML Mobile jQuery CodeIgniter Hash php xml Debug Library Zend API Events Plugins Facebook Basic Registration Tool Twitter Search Swath Performance ffmpeg YouTube Web Service Yahoo! NoSQL MongoDB PhoneGap

Recent Posts

hide
  • ใครๆ ก็มี Utils เอางี้เราเพิ่ม Utils ให้กับ CodeIgniter กันบ้าง
  • แนะนำ JS.Class (A JavaScript class library)
  • PHP กับ OOP มาปูพื้นฐานกันเสียใหม่ก่อน
  • ประกาศข่าวสารจาก Admin
  • JSFIDDLE สุดยอด Tools สำหรับการ Debug การเขียนตัวอย่างโคด
  • Titanium Mobile + HTML + Native Scrolling
  • HTML to PDF ตัวไหนดี วันนี้ผมมีคำตอบ ...
  • ทำความรู้จักกับ JavaScript Pattern ในเชิงลึก
  • ผมบอกคุณแล้ว .... คนโง่ก็ Code ได้
  • วันนี้ มาออกแบบ Web Service ด้วย PHP กันเถอะ (CodeIgniter Version)

Recent Comments

hide
  • เยดดดด
  • มีตัวอย่าง CI แบบ เพียว ๆ ไหมครับ
  • ขอบคุณมากครับ เห็นแนวทางได้ชัดขึ้นจากตอนแรก ที่งงไปหมด ไม่รู้อะไรเป็นอะไร
  • ขอบคุณมากเลยครับท่าน....แหม่เพิ่มกำลังใจให้ผมได้เยอะเลย ตอนนี้กำลังฝึกงานอยู่ที่แห่งนึงในหาดใหญ่ พร้อมเด็กจากอีกสถาบันนึง 3 คน เราคิดว่าเรา…
  • Very good blog, I really like ~

Links

hide
  • OSCOOL
  • Architeture & Performance
  • Video and TV
  • Appcelerator
  • PhoneGap
  • Home
  •  » Blogs

[CI Day 10] มาทำ Web Service ด้วย PHP กัน

Feb 25, 2009 12:33:15 AM | 5 Comments | in Framework | CodeIgniter
เอาล่ะครับ ในที่สุดก็มาเขียนต่อกันซะทีสำหรับ CI ตอนสุดท้ายที่จะเขียน สาเหตุก็เพราะ ผมขี้เกียจอธิบาย เอง อิอิ เพิ่งรู้ว่า เวลาเขียนอธิบาย Server Side Script มันลำบากกว่า Client Side Script เอามากๆ เลย เพราะมันต้องอธิบาย ลงไปถึง Environment อื่นๆ ของมันอีกด้วย ไม่ใช่แบบ หยิบจับมา บอกเล่าได้เลย รวมไปถึงตอนนี้ สะสมเทคนิคใหม่ๆ ของ jQuery ไว้เพียบ และยังไม่ได้มาพูดถึงกัน

ก็เลยตั้งใจไว้ว่า ตอนนี้ จะเป็นตอนสุดท้ายแล้วล่ะครับ ที่ผมจะเขียนถึง CI

เรื่องที่จะมาพูดกันไว้นี้ ก็คือเรื่อง Web Service ครับ แต่ไม่ได้พูดถึงการติดต่อกับ API ของเว็บไซต์ เจ้าดังๆ เจ้าไหน แต่จะมาพูดถึงการสร้าง ต่างหาก

สำหรับคนที่ศึกษาเรื่อง API มาบ้าง คงจะพอเข้าใจว่ามันมี Protocol ที่เป็นที่นิยมหลักๆ ก็คือ SOAP, REST, XML-RPC สำหรับ API ของ Client Script ที่นิยอีกตัวก็คือ JSONP

ถ้าจะให้ผมพูดถึงทุกตัว วันนี้ผมคงไม่ได้นอนเป็นแน่ [0.17] ก็จะขอพูดถึง เรื่องที่จะเขียนเลยแล้วกัน นั่นก็คือ REST Protocol ครับ โดยที่จะใช้ Zend มาเป็น Core Lib ในการทำงาน [ถ้าใครยังไม่เคย plug Zend ลงใน CI ไปอ่านบทความย้อนหลังครับ]

เพื่อไม่ให้เป็นการเสียเวลา ผมขอลงมือ โคดไปเลยแล้วกัน

ก่อนอื่นผมจะสร้าง Dir แบบนี้ก่อน

[app]/controller/api/rest.php

<?php
class Rest extends Controller {
 
        function __construct()
        {
                parent::Controller();
        }
 
        function index()
        {
                require(‘Zend/Rest/Server.php’);
                $this->load->model(‘Api_model’);
 
                $server = new Zend_Rest_Server();
                $server->setClass(‘Api_model’);
                $server->handle();
        }
 
}
?>

โคดในส่วนนี้ผมทำการเรียก Zend ในส่วนของ Rest Server ขึ้นมาใช้งาน จากนั้นผมไปสร้าง model ให้กับ CI และ load ขึ้นมา แล้วก็ทำการ assign class จาก model ทั้งหมดลง CI ด้วย method ที่ชื่อว่า setClass เรียก handle ขึ้นมา เท่านี้เองครับ!

ง่ายดีมั้ยล่ะครับ เพราะว่านี่มันแค่ขึ้นโครงเอง 555+

ที่ลำบากจริงๆ มันคือการ implement methods ให้กับ ชุด api ของเราต่างหาก

ไปดูกันที่ model เลย....

ที่ models/api_model.php

ผมก็ไปทำการสร้าง method ที่จะให้ developer อื่นๆ นำไปใช้งานเช่น

<?php
class Api_model extends Model {
 
        function __construct()
        {
                parent::Model();
        }
 
        function helloworld($var1=”, $var2=”)
        {
                return array($var1, $var2);
        }
 
}
?>


จากนั้นพอเราจะใช้งานเราก็เรียก
http://localhost/yourapp/api/rest?method=helloworld&var1=aaaa&var2=bbb

โดยที่ helloword ก็คือชื่อ method ส่วน parameter ก็ส่งไปตามที่เรากำหนดไว้ เรื่อง xml ตัว fw ของ zend จะเป็นคนจัดการให้

ถ้าสนใจข้อมูลในเชิงลึกก็ขอให้ไปลองอ่านกันได้ที่ Zend Rest Server ซึ่งจะมีวิธีใช้งานที่ค่อนข้างละเอียด(มั้ง) ให้อ่านกัน

หรือถ้าสนใจจะทำ Protocol XML-RPC ไม่ต้องมองหาไกลครับ ใน CI เองก็มี และค่อนข้างใช้ง่ายมากๆ เลยด้วย
http://codeigniter.com/user_guide/libraries/xmlrpc.html

เอาล่ะครับ ผมก็ขอฝากให้ศึกษากันต่อตามสะดวกเลยแล้วกันนะครับ ส่วน jQueryTips.com จะกลับมาสู่ Version ปกติ ก็คือ เน้นแต่เื่องของ jQuery เหมือนเดิมแล้วครับ ^^

twitter stumbleupon delicious digg facebook

5 comments

Add comment Load previous All comments

Leave a comment

Post Comment

Powered by OSCOOL. You may view this on RSS or ATOM.

OSCOOL

  • Twitter
  • Facebook
  • Next