REST APIs (Webservices)
Aproveche las API REST expuestas a través de HTTP (s) para insertar o extraer datos de Vtiger e integrarse con aplicaciones de terceros. Usted es libre de elegir la biblioteca de su elección para trabajar con estas API. vtwsclib proporciona soporte para trabajar con las API de REST a través de varios lenguajes de programación.
La siguiente sección cubre más detalles sobre las API:
Request Format
HTTP - GET / POST
application/x-www-form-urlencoded
Response Format
Success
{
success: true,
result: {
// ...
}
}
Failure
{
success: false,
error: {
message: String,
code: String
}
}
Login Operation
Es un proceso de dos pasos que consiste en obtener el testigo de desafío y el intercambio de credenciales (nombre de usuario y clave de acceso). Puede encontrar información de accessKey en "Mis preferencias" en la interfaz de usuario de CRM Web.
Challenge
GET /webservice.php?operation=getchallenge&username=<USERNAME> HTTP/1.1
Challenge Response
{
success: true,
result: {
token: TOKENSTRING, // Challenge token to be used for login.
serverTime: TIMESTAMP, // Current Server time
expireTime: TIMESTAMP // Time when token expires
}
}
Login
POST /webservice.php HTTP/1.1
operation=login
username=<USERNAME>
accessKey=md5(TOKENSTRING + <ACCESSKEY>) // Note: accessKey= K here is capitalized.
Response
{
success: true,
result: {
sessionId: String, // Unique Identifier for the session
userId: String, // User ID in CRM
version: String, // Webservice API version
vtigerVersion: String // Version of CRM
}
}
Logout Operation
POST /webservice.php HTTP/1.1
operation=logout
sessionName=sessionId // Obtained through Login Operation
List Types Operation
GET /webservice.php?operation=listtypes&sessionName=sessionId HTTP/1.1
Describe Operation
GET /webservice.php?operation=describe&sessionName=sessionId&elementType=<TYPE> HTTP/1.1
Create Operation
POST /webservice.php HTTP/1.1
operation=create
sessionName=sessionId // Obtained through Login Operation
element=URLENCODED(JSONDATA) // JSONDATA - JSON Map of (fieldname=fieldvalue)
elementType=<TYPE> // TYPE - Module Name
Retrieve Operation
GET /webservice.php?operation=retrieve&sessionName=sessionId&id=<WEBSERVICE_ID> HTTP/1.1
Update Operation
POST /webservice.php HTTP/1.1
operation=update
sessionName=sessionId // Obtained through Login Operation
element=URLENCODED(DATA) // DATA - Map of (fieldname=fieldvalue)=URLENCODED(DATA) // DATA - Map of (fieldname=fieldvalue)
Delete Operation
POST /webservice.php HTTP/1.1
operation=delete
sessionName=sessionId // Obtained through Login Operation
id=<WEBSERVICE_ID>
Query Operation
GET /webservice.php?operation=query&sessionName=sessionId&query=<QUERY> HTTP/1.1
<QUERY>
FORMAT:
SELECT * | <column_list> | <count(*)>
FROM <object>
[WHERE <conditionals>]
[ORDER BY <column_list>]
[LIMIT [<m>, ] <n>]
<column_list> | Comma separated list of field names. |
---|---|
<object> | Type or Module Name. |
<conditionals> | <condition_operations> or <in_clauses> or <like_clauses> separated by ‘and’ or ‘or’ operators these are processed from left to right. The are no grouping that is bracket operators. |
<condition_operations> | <, >, <=, >=, =, != |
<in_clauses> | in () |
<like_clauses> | like ‘sqlregex’ |
<value_list> | a comma separated list of values. |
m, n | integer values to specify the offset and limit respectively. |
LIMITATIONS
- Las Query se limitan actualmente a un solo objeto.
- Joins no son soportados.
- Query siempre limita su salida a 100 registros, la aplicación cliente puede utilizar el operador límite para obtener diferentes registros.
Sync Operation
GET /webservice.php?operation=sync&sessionName=sessionId&modifiedTime=<TIMESTAMP>&elementType=<TYPE> HTTP/1.1
Extend Session Operation
GET /webservice.php?operation=extendsession HTTP/1.1