.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ===================== EXT: TYPO3 webservice ===================== :Author: Kasper Skårhøj :Created: 2002-11-01T00:32:00 :Changed: 2011-11-07T23:17:38 :Classification: typo3_webservice :Description: The keywords help with categorizing and tagging of the manuals. You can combine two or more keywords and add additional keywords yourself. Please use at least one keyword from both lists. If your manual is NOT in english, see next tab "language" ---- forEditors (use this for editors / german "Redakteure") forAdmins (use this for Administrators) forDevelopers (use this for Developers) forBeginners (manuals covering TYPO3 basics) forIntermediates (manuals going into more depth) forAdvanced (covering the most advanced TYPO3 topics) see more: http://wiki.typo3.org/doc_template#tags ---- :Keywords: forAdmins, forDevelopers, forIntermediates :Author: Helut Hummel :Email: typo3-ext@naw.info :Info 4: :Language: en |img-1| |img-2| EXT: TYPO3 webservice - typo3\_webservice .. _EXT-TYPO3-webservice: EXT: TYPO3 webservice ===================== Extension Key: typo3\_webservice Language: en Keywords: forAdmins, forDevelopers, forIntermediates Copyright 2000-2008, Helut Hummel, This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 \- a GNU/GPL CMS/Framework available from www.typo3.org .. _Table-of-Contents: Table of Contents ----------------- `EXT: TYPO3 webservice 1 <#1.EXT:%20TYPO3%20webservice|outline>`_ **`Introduction 3 <#1.1.Introduction|outline>`_** `What does it do? 3 <#1.1.1.What%20does%20it%20do_|outline>`_ `Screenshots 3 <#1.1.2.Screenshots|outline>`_ **`Users manual 4 <#1.2.Users%20manual|outline>`_** **`Administration 5 <#1.3.Administration|outline>`_** `Installation 5 <#1.3.1.Installation|outline>`_ `Configuration 5 <#1.3.2.Configuration|outline>`_ **`Using the webservice 9 <#1.4.Using%20the%20webservice|outline>`_** **`API Description 12 <#1.5.API%20Description|outline>`_** **`Example: the iPhone App 13 <#1.6.Example:%20the%20iPhone%20App|outline>`_** **`Sources, Features, Knows Problems 14 <#1.7.Sources,%20Features,%20Knows%20Problems|outline>`_** **`FAQs 15 <#1.8.FAQs|outline>`_** **`ChangeLog 16 <#1.9.ChangeLog|outline>`_** .. _Introduction: Introduction ------------ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ This extension brings a webservice to TYPO3 that enables you to create, read, edit, and delete data in TYPO3 through an external application. This documentation describes the webservice and the functions it provides. It does not describe any external application. For details on this service, please read the paper and the slides from our talk at the TYPO3 Conference t3con09 in Frankfurt: `http://www.naw.info/en/skills-and-services/typo3-web-service-iphone- app.html `_ We will update this documentation in the near future with more details. .. _Screenshots: Screenshots ^^^^^^^^^^^ This extension has no GUI, so there is no screenshot to show here. .. _Users-manual: Users manual ------------ This extension has no functions for normal users, because it provides a webservice. Please read on in the Administration section. .. _Administration: Administration -------------- .. _Installation: Installation ^^^^^^^^^^^^ Download and install the extension as usual from the TER. The extension key is typo3\_webservice. The webservice can be reached via the URL `http://yourdomain.tld/typo3conf/ext/typo3\_webservice/modRpc/ `_ . To shorten that URL, you can configure a redirect on your webserver configuration. Here is an example for a Apache .htaccess file: :: RewriteRule ^rpc(.*) typo3conf/ext/typo3_webservice/modRpc/index.php [L] As always when accessing the TYPO3 backend, please use https instead of http to access the webservice. .. _Configuration: Configuration ^^^^^^^^^^^^^ Only a user with the desired rights can access the webservice. These steps are exactly the same as for creating normal editors. Create a backend user group, and configure the following: Under “Access List” choose “Webservices->XMLRPC”. |img-3| Under “Tabes (listing)” choose the tables you want an user to see when he enters via the webservice (in this case “Pages”, because we want to read data from a sysfolder and “News”). |img-4| At “Tables (modify)” choose the tables that should be modified by a user who enters via webservice (in this case “News, because we want to create and edit news). |img-5| Under “Alowed excludefields” choose the fields the user can edit when he enters via the webservice (In this case some fields from news, we want to edit). |img-6| Finally create a backend user with a password and assign the created group to that user. |img-7| Assign the desired sysfolder(s) or page(s) to the user or the group. This DB Mount will be given to the user/group. (In this case we assigned the sysfolder “News” to the user as a DB Mount) |img-8| Last but not least, check/ set the permissions of the pages within this mountpoint using the Access module. .. _Using-the-webservice: Using the webservice -------------------- The webservice provides functions you can access from a third party application. These functions will use the TYPO3 API to access TYPO3 and to modify the data in TYPO3. We will expand this section in the near future. For now, here are some screenshots, that show how you can interact with the webservice. We hope, these screens will give you an idea on how your application could talk with the webservice. (The tool we used to try the webservice is called “XML-RPC-Client” and can be downloaded here `http://ditchnet.org/xmlrpc/ `_ ) There's also an online XMLRPC tool which is available here: `http://www.tomhost.de/dev/tools/xmlrpc-tt/ `_ |img-9| |img-10| |img-11| |img-12| .. _API-Description: API Description --------------- .. ### BEGIN~OF~TABLE ### .. _system-listMethods: system.listMethods ^^^^^^^^^^^^^^^^^^ .. container:: table-row Method system.listMethods Parameters none General description This list returns a list (array) of all registered methods Return Value array of strings .. _system-methodHelp: system.methodHelp ^^^^^^^^^^^^^^^^^ .. container:: table-row Method system.methodHelp Parameters string General description This method returns a short description of the requested method Return Value string .. _system-methodSignature: system.methodSignature ^^^^^^^^^^^^^^^^^^^^^^ .. container:: table-row Method system.methodSignature Parameters string General description This method returns information about the type of parameters and return value of the requested method Return Value array of strings .. _login: login ^^^^^ .. container:: table-row Method login Parameters string (user), string (pass) General description Pass credentials of a backend user which is considered to use the rpc service. A session id will be returned if the user is authenticated. Return Value string (session id) .. _call: call ^^^^ .. container:: table-row Method call Parameters string (id), string (method), array (params) General description Use this method to call rpc methods that need authentication. You have to pass the session id as first and the method name as a second parameter. Return Value mixed (depends on the method called) .. _multicall: multicall ^^^^^^^^^ .. container:: table-row Method multicall Parameters string (id), array (method name and array of parameters) General description Call multiple methods at once and get the response of the called methods as an array Return Value array of mixed values .. _record-list: record.list ^^^^^^^^^^^ .. container:: table-row Method record.list Parameters int (pageid), string (table), array (extra fields) General description This method returns a list of mount pages of the user, if you do not specify a parameter. If a page id is specified it returns an array with all records ordered by tables (like in list module). With the third parameter other fields of the records (besides the label) can be returned. A forth parameter taking a limit description si planned but not yet implemented. Return Value array of records .. _record-create: record.create ^^^^^^^^^^^^^ .. container:: table-row Method record.create Parameters int (pageid), string (table) General description This methods returns a dummy record, respecting all tca defaults that may be set. This data can be used with the record.update method to really create a record in the database. Return Value array (fields and values of the record) .. _record-delete: record.delete ^^^^^^^^^^^^^ .. container:: table-row Method record.delete Parameters string (table), int (uid) General description Delete record with the given uid in the specified table. Return Value int (uid) .. _record-update: record.update ^^^^^^^^^^^^^ .. container:: table-row Method record.update Parameters string (table), int/string (uid), array (data) General description Update the specified record with the given data. The given data must be provided in the same form it is served by record.get. The uid must be integer or in the form “NEW324sdf23sdf” as returned from record.create Return Value int (uid) .. _record-get: record.get ^^^^^^^^^^ .. container:: table-row Method record.get Parameters string (table), int (uid) General description This method returns the fieldnames, the field types (date, relation etc.) and the field values of the given record uid of the specified table. Return Value array .. _record-hide: record.hide ^^^^^^^^^^^ .. container:: table-row Method record.hide Parameters string (table), int (uid) General description Hide the record with the given uid in the specified table. Return Value int (uid) .. _record-hide: record.hide ^^^^^^^^^^^ .. container:: table-row Method record.hide Parameters string (table), int (uid) General description Unhide the record with the given uid in the specified table. Return Value int (uid) .. ###### END~OF~TABLE ###### .. _Example-the-iPhone-App: Example: the iPhone App ----------------------- We created an iPhone App as a proof of concept for our webservice. You can download the `App from the AppStore `_ . .. _Sources-Features-Knows-Problems: Sources, Features, Knows Problems --------------------------------- We started a project on forge: `http://forge.typo3.org/projects/show /extension-typo3\_webservices `_ Please use the functions provided there to give us feedback, suggest new features or contribute code. .. _FAQs: FAQs ---- Please refer to the Wiki page on forge for a list of frequently asked questions: http://forge.typo3.org/wiki/extension-typo3\_webservices/FAQ/ .. _ChangeLog: ChangeLog --------- Please see the file “ChangeLog” in the extension directory 16 .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. |img-2| image:: img-2.png .. :border: 0 .. :height: 21 .. :hspace: 9 .. :id: Grafik2 .. :name: Grafik2 .. :width: 87 .. |img-3| image:: img-3.png .. :align: left .. :border: 0 .. :height: 619 .. :id: graphics1 .. :name: graphics1 .. :width: 413 .. |img-4| image:: img-4.png .. :align: left .. :border: 0 .. :height: 392 .. :id: graphics2 .. :name: graphics2 .. :width: 403 .. |img-5| image:: img-5.png .. :align: left .. :border: 0 .. :height: 388 .. :id: graphics3 .. :name: graphics3 .. :width: 393 .. |img-6| image:: img-6.png .. :align: left .. :border: 0 .. :height: 704 .. :id: graphics4 .. :name: graphics4 .. :width: 400 .. |img-7| image:: img-7.png .. :align: left .. :border: 0 .. :height: 394 .. :id: graphics5 .. :name: graphics5 .. :width: 669 .. |img-8| image:: img-8.jpeg .. :align: left .. :border: 0 .. :height: 269 .. :id: Grafik1 .. :name: Grafik1 .. :width: 390 .. |img-9| image:: img-9.png .. :align: left .. :border: 0 .. :height: 580 .. :id: graphics6 .. :name: graphics6 .. :width: 669 .. |img-10| image:: img-10.png .. :align: left .. :border: 0 .. :height: 581 .. :id: graphics7 .. :name: graphics7 .. :width: 669 .. |img-11| image:: img-11.png .. :align: left .. :border: 0 .. :height: 332 .. :id: graphics8 .. :name: graphics8 .. :width: 669 .. |img-12| image:: img-12.png .. :align: left .. :border: 0 .. :height: 575 .. :id: graphics9 .. :name: graphics9 .. :width: 669