2014-11-09 3 views
0

У меня есть набор API-интерфейсов мыла, которые могут выполнять такие действия, как логин, выход из системы, keepalive, доступ к другим ресурсам. Для доступа к другим ресурсам мне нужно пройти сеанс id, который я получил от login api. Сессия получает тайм-аут через 5 минут. Я смущен тем, как это сделать.Как использовать SOAP API с именем входа и сеансом codeigniter

Я использую codeigniter для моего проекта, и я создал одну библиотеку с набором заданных в ней запросов на мыло api.

class Soap_api 
{ 
    function __construct() 
    { 

     define("UID",  "myuser"); 
     define("PWD", "34rf3a45575"); 
     define("API_ENDPOINT", "http://uat-api.testingsoapapi.in/services/smp"); 
     define("PRODUCT_CODE", "24"); 
     $resp = $this->keepAliveLib(); 
     if($resp['ResponseCode'] == '0') 
     { 
      define("SessionID",$resp['SessionID']); 
     } 

    } 
    function keepAliveLib() 
    { 
     $resp = $this->login(); 
     return $resp; 
    } 
    function one 
    { 
    //This function needs the sessionID receieved from login function 
    } 
    function two 
    { 
    //This function needs the sessionID receieved from login function 
    } 

Так что, когда-либо какой-либо из функций из этого класса доступен, конструктор вызывает keepAliveLib, который вызывает функцию Логин проживания в этом классе и вернуть идентификатор сеанса в функции конструктора и установить его в качестве глобальной константы SESSIONID . Так что функция, которую я вызывал, будет использовать идентификатор сеанса, который создается как константа.

Это стандартный способ вызова API-интерфейсов, которые ретранслируют на сеансах? Функция входа вызывается, когда вызывается функция, и создает другой идентификатор сеанса. В библиотеке есть функция keepAlive, которая может использоваться для поддержки сессии, но вместо использования keepAlive, я регистрирую каждый раз, когда функция в этом доступна.

Есть ли что-то не так в этом потоке? Можно ли это сделать другими способами?

ответ

0

ok Я, вероятно, не понимаю этого полностью, но будет ли это работать?

$resp = $this->keepAliveLib(); 
    if($resp['ResponseCode'] == '0') { 

     $this->sessionid = $resp['SessionID']); } 

    else { // fail gracefully } 

$ this-> SessionID теперь доступно для любого метода в контроллере.

Смежные вопросы