Tag: 休息

如果REST应用程序应该是无状态的,那么您如何管理会话?

我需要一些澄清。 我一直在阅读REST,并构建RESTful应用程序。 根据维基百科,REST本身被定义为具象状态传输 。 因此,我不明白所有这些每个人都在不停地喷涌而出的无国界的大杂烩 。 从维基百科: 在任何特定的时间,客户可以在应用程序状态之间转换或“静止”。 处于休眠状态的客户端能够与其用户进行交互,但不会创建任何负载,也不会消耗服务器组或网络上的每个客户端存储。 他们只是说不使用会话/应用程序级别的数据存储? 我得到REST的一个目标是使URI访问一致和可用,例如,而不是在帖子内部隐藏分页请求,使得请求的页码成为GET URI的一部分。 对我有意义。 但似乎只是过度的说, 每个客户端数据 (会话数据)都不应该存储在服务器端。 如果我有一个消息队列,并且我的用户想要阅读这些消息,但是当他阅读这些消息的时候,想要在会话期间阻止某些发送者消息通过? 将它存储在服务器端的地方是否有意义,并让服务器只发送未被用户阻止的消息(或消息ID)? 每次我请求新的消息列表时,是否真的必须发送整个消息发送者列表来阻塞? 与我相关的消息列表首先不会/甚至不应该是公开可用的资源。 再次,只是想明白这一点。 有人请澄清。 更新: 我发现了一个堆栈溢出的问题,有一个答案,不完全让我一路在那里: 如何管理REST的状态,它表示,重要的客户端状态应该在每个请求都转移…. Ugg ..似乎有很多的开销…这是对的吗?

Restful API服务

我正在寻找一个服务,我可以用它来调用基于Web的REST API。 基本上我想开始一个应用程序初始化服务,然后我想能够要求该服务请求一个网址,并返回结果。 在此期间,我希望能够显示一个进度窗口或类似的东西。 我已经创建了一个使用IDL的服务,我已经在某个地方读过你只需要交叉应用程序通信的地方,所以认为这些需求是剥离出来的,但是不知道如何在没有它的情况下做回调。 另外,当我点击post(Config.getURL("login"), values) ,应用程序似乎暂停了一段时间(似乎很奇怪 – 认为服务背后的想法是,它运行在不同的线程! 目前我有一个服务后,得到HTTP方法里面,几个AIDL文件(双向通信),一个ServiceManager,处理启动,停止,绑定等服务,我动态创建一个处理程序与特定的代码根据需要进行回调。 我不希望任何人给我一个完整的代码库来处理,但一些指针将不胜感激。 代码(大部分)全部: public class RestfulAPIService extends Service { final RemoteCallbackList<IRemoteServiceCallback> mCallbacks = new RemoteCallbackList<IRemoteServiceCallback>(); public void onStart(Intent intent, int startId) { super.onStart(intent, startId); } public IBinder onBind(Intent intent) { return binder; } public void onCreate() { super.onCreate(); } public void onDestroy() { super.onDestroy(); mCallbacks.kill(); […]

如何使用Telegram API实现授权?

我想要使​​用PHP来实现与电报REST API交互的多重授权。 我想要解决什么任务? 好吧,这很简单:几十个用户(他们都有一个像这里(+10,-2,+1000等)与相关组分类:网站管理员和客户)在我的网站上有一个用户配置文件。 当他们达到一定数量的carma,并且由于他们在他们的个人资料被授权,他们被加入基于自动生成的电报私人聊天。 经过一番调查,我发现这很复杂,因为: 我从来没有过硬件绑定社交网络的API实现经验。 我查看了https://core.telegram.org/api/auth ,但是如何使用PHP或任何其他语言来实现这些功能(例如auth.sendCode)是完全不明显的。 如果这些命令应该作为JSON发送到服务器,那么它看起来不像JSON: auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; 它是什么? 它写的是哪种语言? UPD:它是用TL(类型语言)编写的: https : //core.telegram.org/mtproto/TL 我已经探索了几个客户端的源代码(网络图,Telegram-Cli(tg),tdesktop),并且发现了https://core.telegram.org/mtproto 不幸的是,他们中没有一个支持多方授权,经过一点研究,我不知道要在哪里深入挖掘以获取更多信息。 另外,这些实现看起来很笨重和复杂(例如https://github.com/vysheng/tg ): 在那里我看到一堆服务器(./tg/tgl/tgl.h): #define TG_SERVER_1 "149.154.175.50" #define TG_SERVER_2 "149.154.167.51" #define TG_SERVER_3 "149.154.175.100" #define TG_SERVER_4 "149.154.167.91" #define TG_SERVER_5 "149.154.171.5" 我发现了几个可能适当的函数(./tg/tgl/queries.c): void empty_auth_file (void) { if (TLS->test_mode) { bl_do_dc_option (TLS, 1, "", […]

会话是否真的违反RESTfulness?

在RESTful API中使用会话是否违反RESTfulness? 我已经看到了许多意见,但我不相信会议是RESTless 。 从我的观点: RESTfulness不会禁止认证(否则在RESTful服务中几乎没有用处) 身份验证是通过在请求中发送身份验证令牌来完成的,通常是头部 这个认证令牌需要以某种方式获得,并且可能被撤销,在这种情况下,它需要被更新 身份验证令牌需要服务器验证(否则不会进行身份验证) 那么会话如何违反这个规定呢? 客户端,会话使用cookie来实现 cookies只是一个额外的HTTP头 会话cookie可以在任何时候被获取和撤销 会话cookie可以有一个无限的生活时间,如果需要的话 会话ID(身份验证令牌)在服务器端进行验证 因此,对于客户端,会话cookie与任何其他基于HTTP头的认证机制完全相同,除了它使用Cookie头而不是Authorization或其他专有头。 如果没有会话连接到cookie值服务器端,为什么会有所作为? 只要服务器表现为 RESTful,服务器端实现就不需要关心客户端。 因此,Cookie本身不应该使API 变得无法使用,而会话只是客户端的Cookie。 我的假设是错的吗? 什么使得会话cookie 无效 ?