Javascript 使用不同类型的客户端创建干净的标准API
我想创建一个api,让不同的客户端可以连接到它,比如Web、移动平台等。我的问题是,有时候每个客户端的情况都不一样。例如,我使用不同的方法对Web和移动平台进行身份验证,我的问题是: 我必须为每种类型的客户端创建不同的文件,如果需要,则使用 else语句来检测客户端类型并在 同一班 我想创建干净和标准的API。我知道这可能有很多答案,这是一个广泛的问题,但我只是有一个线索Javascript 使用不同类型的客户端创建干净的标准API,javascript,php,python,node.js,api,Javascript,Php,Python,Node.js,Api,我想创建一个api,让不同的客户端可以连接到它,比如Web、移动平台等。我的问题是,有时候每个客户端的情况都不一样。例如,我使用不同的方法对Web和移动平台进行身份验证,我的问题是: 我必须为每种类型的客户端创建不同的文件,如果需要,则使用 else语句来检测客户端类型并在 同一班 我想创建干净和标准的API。我知道这可能有很多答案,这是一个广泛的问题,但我只是有一个线索 NO stick to a standard 如果你是在做一个基于API的调用,你首先必须标准化调用,你不能为不同的客户端
NO stick to a standard
如果你是在做一个基于API的调用,你首先必须标准化调用,你不能为不同的客户端的单个函数指定X,Y,Z。这总有一天会失控的
您必须就要使用的功能达成标准协议,我确信在客户端这将需要最小的更改,因为我假定返回类型将是相同的
此外,新开发人员很难维护它
因此,坚持标准通话,达成共同协议
如果你是在做一个基于API的调用,你首先必须标准化调用,你不能为不同的客户端的单个函数指定X,Y,Z。这总有一天会失控的
您必须就要使用的功能达成标准协议,我确信在客户端这将需要最小的更改,因为我假定返回类型将是相同的
此外,新开发人员很难维护它
因此,坚持标准通话,达成共同协议 创建API绝对不是“唯一”的方法 但是,检查客户机的类型肯定不是一个好办法,因为这意味着要检查头,发送请求时可以伪造头 对于身份验证,如果您想使用不同的方法,最好的办法可能是使用不同的身份验证策略,然后逐个尝试。如果第一个失败,则运行下一个,以此类推。 实现这一点的一种常见方法是添加一个身份验证中间件,该中间件尝试每种可用的策略对客户端进行身份验证,如果不能,则停止请求
这确实意味着,即使您希望您的策略A仅适用于浏览器,它也可以用于从移动应用程序登录,但无法防止这种情况,而且无论如何,它也不应导致任何安全问题。如果是这样的话,问题可能在其他地方。创建API肯定不是“唯一”的方法 但是,检查客户机的类型肯定不是一个好办法,因为这意味着要检查头,发送请求时可以伪造头 对于身份验证,如果您想使用不同的方法,最好的办法可能是使用不同的身份验证策略,然后逐个尝试。如果第一个失败,则运行下一个,以此类推。 实现这一点的一种常见方法是添加一个身份验证中间件,该中间件尝试每种可用的策略对客户端进行身份验证,如果不能,则停止请求
这确实意味着,即使您希望您的策略A仅适用于浏览器,它也可以用于从移动应用程序登录,但无法防止这种情况,而且无论如何,它也不应导致任何安全问题。如果是这样的话,问题可能出在其他地方。我发现使用 你需要做什么
您可以为桌面客户端创建API/v1,为移动客户端创建API/v2等API模块,以便轻松分离。签出以分离API版本,或者如果您不想手动执行所有操作,只需克隆包含所有主要功能的组件即可。我发现使用 你需要做什么
您可以为桌面客户端创建API/v1,为移动客户端创建API/v2等API模块,以便轻松分离。签出以分离API版本,或者如果您不想手动执行所有操作,只需克隆包含所有主要功能的API即可。我从未听说过API与桌面和移动登录不同。用户只发送身份验证数据,不管他们的平台是什么,如果他们有有效的凭证,服务器会给他们一个cookie。我从来没有听说过API与桌面和移动登录不同。用户只发送身份验证数据,不管他们的平台是什么,如果他们有有效的凭证,服务器会给他们一个cookie。