GeoChat បានផ្តល់នូវអ្នកប្រើប្រាស់នូវ API Basic Auth ដើម្បីកំណត់ភាពត្រឹមត្រូវរបស់អ្នកប្រើប្រាស់។
End points មួយចំនួនដំណើរការបានទាំងauthenticated និង non-authenticated requests. បើសិនជាclient មិនsupport pre authentication នេះប្រហែលជាបញ្ហា។ នៅក្នុងករណីនេះ ?auth=true គួតែត្រូវបានបញ្ចូលទៅក្នុងQueryString ដើម្បីជំរុញប្រពន្ធ័មេកានិករបស់authentication មូលដ្ឋាន (Since 1.7.1)
រាល់សំណើរទាំរអស់អាចធ្វើបានតាមរយៈ SSL
Api ធ្វើការហៅយកលេខទំពរ័ដែលត្រឹមត្រូវគឺប្រើ1-based page index នៅក្នុង QueryString។ លទ្ធផលនឹងភ្ជាប់ជាមួយនូវដំណរភ្ជាប់ទៅកាន់ទំពរ័ខាងមុខនិងទំពរ័បន្ទាប់ បើសិនជាជាអាចប្រើដំណរភ្ជាប់ដែលល្អិតបំផុតជាមួយនិងទំនាក់ទំនងជាមួយទំពរ័ខាងក្រោយនិងទំពរ័បន្ទាប់។
បើសិនជាលេខទំពរ័មិនត្រឹមត្រូវនៅក្នុងQueryString, នោះវានឹងទៅកាន់ទំពរ័ដំបូងដោយស្វយ័ប្រវត្តិ។
លទ្ធផលគឺមានកំណត់តែ១០តែប៉ុណ្ណោះក្នុងមួយទំពរ័។
ជាឧទាហរណ៏លទ្ធផលនៃ http://geochat.instedd.org/api/foo/bar?page=2 នឹង:
<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>...</title>
<description>...</description>
<atom:link rel="previous" href="http://geochat.instedd.org/api/foo/bar?page=1" />
<atom:link rel="next" href="http://geochat.instedd.org/api/foo/bar?page=3" />
<!-- items -->
</channel>
</rss>
| HTTP Method | URI | Since version | |
|---|---|---|---|
| Get User Info | GET | /api/users/{login} | 1.7 |
| Create User | POST | /api/users/{login}/create | 1.7 |
| Update User Profile | POST | /api/users/{login}/update | 1.7 |
| List User Groups | GET | /api/users/{login}/groups | 1.7 |
| List User Requests | GET | /api/users/{login}/requests | 1.8 |
| List User Invites | GET | /api/users/{login}/invites | 1.8 |
| Verify User Credentials | GET | /api/users/{login}/verify | 1.8 |
| Get Group Info | GET | /api/groups/{alias} | 1.7 |
| Create Group | POST | /api/groups/{alias}/create | 1.7 |
| Update Group | POST | /api/groups/{alias}/update | 1.7 |
| List Groups | GET | /api/groups | 1.7 |
| List Group Members | GET | /api/groups/{alias}/members | 1.7 |
| Join Group | POST | /api/groups/{alias}/join | 1.7 |
| Leave Group | POST | /api/groups/{alias}/leave | 1.7 |
| Invite User to Group | POST | /api/groups/{alias}/invite | 1.7 |
| Get a Message | GET | /api/messages/{id} | 1.7 |
| Send Message | POST | /api/messages | 1.7 |
| Send Message to a Group | POST | /api/groups/{alias}/messages | 1.7 |
| Get Group Messages | GET | /api/groups/{alias}/messages | 1.7 |
| Get User Messages | GET | /api/users/{login}/messages | 1.7 |
| Get Public Messages | GET | /api/messages/public | 1.7 |
| Group Overall Stats | GET | /api/groups/{alias}/stats/overall | 1.9 |
| Group Message History Stats | GET | /api/groups/{alias}/stats/messagehistory | 1.9 |
| Group Message History Per Protocol Stats | GET | /api/groups/{alias}/stats/messagehistoryperprotocol | 1.9 |
| Group User Channels History Stats | GET | /api/groups/{alias}/stats/userchannelshistory | 1.9 |
| Group Pending Invitations Stats | GET | /api/groups/{alias}/stats/pendinginvitations | 1.9 |
| System Overall Stats | GET | /api/system/stats/overall | 1.9 |
| System Group History Stats | GET | /api/system/stats/grouphistory | 1.9 |
| System Message History Stats | GET | /api/system/stats/messagehistory | 1.9 |
| System Message History Per Protocol Stats | GET | /api/system/stats/messagehistoryperprotocol | 1.9 |
| System User Channels History Stats | GET | /api/system/stats/userchannelshistory | 1.9 |
| System Pending Invitations Stats | GET | /api/system/stats/pendinginvitations | 1.9 |
| System Users Per Group Count Stats | GET | /api/system/stats/userspergroupcount | 1.9 |
| System Users History Stats | GET | /api/system/stats/usershistory | 1.9 |
API resources អាចត្រូវបានអ្នកប្រប្រាស់ធ្វើជាសំនើរជា ATOM ឬ RSS (វិធីមួយចំនួនអាអនុញ្ញាតិ KML និង CSV).
អ្នកអាចកំណត់ទំរង់នៃលទ្ធផលនៅក្នុងURI នៃសំនើរ។ រូបមន្តរបស់វាគឺ http://geochat.instedd.org/api/foo/bar.{format}, ឧទាហរណ៏ http://geochat.instedd.org/api/users/johndoe.rss នឹងផ្តល់លទ្ធផលជា RSS, និង http://geochat.instedd.org/api/users/johndoe.atom នឹងផ្តល់លទ្ធផលជា ATOM.
បើសិនជាមិនកំណត់ទំរង់ច្បាស់លាស់ទេ(ឧទា. http://geochat.instedd.org/api/users/johndoe) នោះវានឹងផ្តល់លទ្ធផលជា RSS.
អ្នកអាចមើលឧទាហរណ៏នៅក្នុងឯកសារនៃវិធី API នីមួយៗ។
នៅពេលដែលCodeមានកំហុសណាមួយកើតឡើង, នោះHTTP នឹងបង្ហាញដូចខាងក្រោម៖
គំរូ PHP អាចរកបាននៅក្នុងfolder 'Samples/RestApi/PHP' នៃ source code របស់ GeoChat (google code link).
ដើម្បីអាចដំនើរការCodeគំរូនេះ, អ្នកចាំបាច់ត្រូវមាន web server ជាមួយនិង PHP (គំរូនេះត្រូវបានបង្កើតឡើងជាមួយនិង PHP 5.3.0, ប៉ុន្តែជាមួយនិង versions ផ្សេងទៀតក៏អាចដំណើរការដែរ) ហើយ 'php_curl' extension ត្រូវបានenable។ MagpieRSS ក៏មានតំរូវការដែរ, ប៉ុន្តែវាត្រូវបានបញ្ជូលរួចជាស្រេចនៅក្នុងsource code។ ទីតាំងURL សំរាប់ API service អាចត្រូវបានconfigure នៅក្នុង 'api.php', គ្រាន់តែកែឈ្មោះដែលបានដាក់អោយច្បាស់ 'BASE_API_URL'.
មានគំរូ៣សំខាន់ៗគឺ៖
ចំណាំ: login របស់អ្នកប្រើប្រាស់មិនបញ្ជាក់កំណត់សំគាល់ទេ។