Mercurial > public > src > rhodecode
diff docs/api/api.rst @ 1580:256e729a94cd beta
Extended API
- updated docs
- created two new methods for creating users and creating users groups
- changed user attribute generated from api_key to apiuser for better name compatibility with functoin parameters
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 30 Sep 2011 18:03:20 +0300 |
parents | e63a2841714d |
children | 8628c8706bf8 |
line wrap: on
line diff
--- a/docs/api/api.rst Fri Sep 30 01:50:21 2011 +0300 +++ b/docs/api/api.rst Fri Sep 30 18:03:20 2011 +0300 @@ -6,12 +6,12 @@ Starting from RhodeCode version 1.2 a simple API was implemented. -There's one schema for calling all api methods. API is implemented +There's a single schema for calling all api methods. API is implemented with JSON protocol both ways. An url to send API request in RhodeCode is -<your-server>/_admin/api +<your_server>/_admin/api -Clients need to send JSON data in such format:: +All clients need to send JSON data in such format:: { "api_key":"<api_key>", @@ -19,16 +19,20 @@ "args":{"<arg_key>":"<arg_val>"} } -Simply provide api_key for access and permission validation -method is name of method to call -and args is an key:value list of arguments to pass to method +Example call for autopulling remotes repos using curl:: + curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"api_key":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull","args":{"repo":"CPython"}}' + +Simply provide + - *api_key* for access and permission validation. + - *method* is name of method to call + - *args* is an key:value list of arguments to pass to method .. note:: api_key can be found in your user account page -And will receive JSON formatted answer:: +RhodeCode API will return always a JSON formatted answer:: { "result": "<result>", @@ -36,7 +40,7 @@ } All responses from API will be `HTTP/1.0 200 OK`, if there's an error while -calling api **error** key from response will contain failure description +calling api *error* key from response will contain failure description and result will be null. API METHODS @@ -47,11 +51,61 @@ ---- Pulls given repo from remote location. Can be used to automatically keep -remote repos upto date. This command can be executed only using admin users -api_key +remote repos up to date. This command can be executed only using api_key +belonging to user with admin rights -:: +INPUT:: + api_key:"<api_key>" method: "pull" args: {"repo":<repo_name>} +OUTPUT:: + + result:"Pulled from <repo_name>" + error:null + + +create_user +----------- + +Creates new user in RhodeCode. This command can be executed only using api_key +belonging to user with admin rights + +INPUT:: + + api_key:"<api_key>" + method: "create_user" + args: {"username": "<username>", + "password": "<password>", + "active": "<bool>", + "admin": "<bool>", + "name": "<firstname>", + "lastname": "<lastname>", + "email": "<useremail>"} + +OUTPUT:: + + result:{"id": <newuserid>, + "msg":"created new user <username>"} + error:null + + +create_users_group +------------------ + +creates new users group. This command can be executed only using api_key +belonging to user with admin rights + +INPUT:: + + api_key:"<api_key>" + method: "create_user" + args: {"name": "<groupname>", + "active":"<bool>"} + +OUTPUT:: + + result:{"id": <newusersgroupid>, + "msg":"created new users group <groupname>"} + error:null