api-design 相关问题

API设计是确定和公开一组旨在供其他开发人员使用以允许以编程方式访问数据的一致方法签名,返回值和文档的过程。

Laravel Api 帮助,当使用站点 B 控制器使用来自站点 A 的 json 数据时,我得到 Null 结果

大家好, 我遇到了问题,我正在尝试找出导致此问题的原因,您能帮助我吗? 这是我的代码 站点A 站点 A 代码 大家好, 我遇到了问题,我正在尝试找出导致此问题的原因,您能帮助我吗? 这是我的代码 站点A 站点 A 代码 <?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Models\MemoModel; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Str; class ApiController extends Controller { public function checkLogin(Request $request){ $username = 'admin'; $token = 'xadasd12324'; $user = User::where('username', $username)->first(); return response()->json([ 'username' => $username, 'token' => $token, 'user' => $user->first_name // 'ok' => $ok ]); if($oauth_user){ RateLimiter::clear($this->throttleKey($username)); return response()->json([ 'status_code' => 200, 'message' => 'Success', ]); }else{ RateLimiter::hit($this->throttleKey($username), $seconds = 3600); return response()->json([ 'status_code' => 401, 'message' => 'Unauthorized2', ]); } } private function throttleKey($username) { return Str::lower(request('username')); } private function checkTooManyFailedAttempts($username) { if (! RateLimiter::tooManyAttempts($this->throttleKey($username), 50)) { return; } abort(403, 'IP address banned. Too many login attempts.'); } } B 站代码 <?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Str; class ApiController extends Controller { public function oAuth(Request $request){ $username = $request->u; $token = $request->id; dd($this->checkAuthToken($token, $username)); } private function checkAuthToken($token, $username){ $result = Http::get('http://site-a.local:8080/one/auth/check/login'); $data = json_decode($result->body(), true); return $data; } } SITE A结果(通过浏览器调用api) 在此输入图片描述 B 站结果 在此输入图片描述 我正在尝试显示来自站点 A 的数据,并根据使用站点 B 控制器从站点 A 检索的数据执行条件 IF ELSE。 谢谢您的帮助。 我不太熟悉 laravel api 的工作原理或一般 API,我尝试了 guzzle 但仍然遇到相同的错误,我猜这与我不熟悉的 laravel 限制或结构有关。 $result->body()将返回string而不是JSON数据。 你应该尝试如下。 try { $url = 'http://site-a.local:8080/one/auth/check/login'; // a small timeout $headResponse = Http::timeout(10)->head($url); // check if url has response or not if (!$headResponse->ok()) { return response()->json(['message' => 'URL is not accessible or does not exist.'], 404); } // get the response with time $response = Http::timeout(30)->get($url); // if response is ok if (!$response->ok()) { return response()->json(['message' => 'Failed to access URL: '], 400); } // this contain all json data and you can access like $response['user'] return $responce; } catch (\Exception $e) { return response()->json(['message' => 'Error accessing URL: ', 'error' => $e->getMessage()], 500); }

回答 1 投票 0

过滤 REST API 响应和单一责任

有一个在线赌场应用程序想要根据特定玩家的游戏类型获取经过过滤的帐户列表,这些玩家可根据以下请求获得注册奖金 获取/玩家/

回答 1 投票 0

语义版本控制和实验性 API 元素

我根据语义版本控制规则对我的 API(各种类型:REST、Java 等)进行版本控制(对于 REST API,在信息对象的版本字段中指定 OAS 中的版本;对于 Jav...

回答 1 投票 0

当我不知道最大页数时,如何从 API 获取数据子集

这与我之前发布的一个问题有关:当我不知道最大页数时,如何从 API 获取所有数据。 我正在使用 Python 中的 API 提取数据。我可以过滤回复...

回答 1 投票 0

当我不知道最大页数时,如何从 API 获取所有数据

我正在使用 API、Python 和 requests 包提取数据。我想提取所有数据,但只能提取 4,000 行。如何提取所有数据?页数不是

回答 1 投票 0

JWT 令牌错误:输入应该是有效的字符串

我正在尝试遵循 Sanjeev 的 python API 开发教程 (https://www.youtube.com/watch?v=0sOvCWFmrtA 1)。直到 7.5 小时我都没有遇到任何麻烦,但现在我正在尝试创建一个新帖子......

回答 1 投票 0

从 Laravel Jobs 返回数据

TL;DR:如何从排队作业返回数据,而不将其保存在任何地方,并处理作业因重试而可能运行多次的情况?或者如果乔布斯没有的话还有其他方法吗

回答 4 投票 0

REST API 设计:将多个 POST 或 PUT 调用组合在一起?

我有一个具有通常结构的 REST API /customers // 获取所有客户的列表 /customers/22 // 获取 ID 为 22 的客户 /客户/22/订单 // ...

回答 1 投票 0

当我不知道最大页面数时,如何从 API 获取所有数据 - python、请求

我正在使用 API、Python 和 requests 包提取数据。我想提取所有数据,但只能提取 4,000 行。如何提取所有数据?页数不是

回答 1 投票 0

使用相同的 REST 资源的多种身份验证方法

假设您正在构建 REST API,这些 API 可以从不同类型的消费者(人类用户、事物、不受信任的本机应用程序)访问,因此每个人都有自己的身份验证方法,对于

回答 1 投票 0

Web-API 和多态 DTO

我需要一些关于我的 API 设计的建议。 作为示例,请考虑以下后端实现。有一种继承结构可以从一个(抽象)公共定义一些更具体的实体

回答 2 投票 0

为什么 RESTful API 会随 API 响应一起发送 cookie?

有一天,我在向 Twitter 发送请求后,在客户端收到了一个奇怪的警告: 2018-01-12 02:32:50,162 警告 o.a.h.c.p.ResponseProcessCookies:130 - 无效的 cookie 标头:“set-cookie: guest...

回答 1 投票 0

API设计:如何确保命令按特定顺序调用

我们正在为我们制造的手持式传感器设计一个 API,以便我们的客户可以将其集成到他们的机器人上。 传感器上的功能需要用户执行一系列操作...

回答 1 投票 0

有条件地为同一端点返回不同的 REST API 响应对象

以下场景不遵循 RESTful 标准,并且很想知道如何最好地构建我的 API 来实现相同的目标。 对于针对资源的给定 GET 请求,例如获取 /api/p...

回答 2 投票 0

针对喜欢、不喜欢和取消投票的正确 REST API 设计

我有一个系统,登录用户可以对帖子投票喜欢或不喜欢。如果他们试图喜欢一个已经被喜欢的帖子,他们会删除它的投票。同样适用于不喜欢。作为 REST 新手...

回答 2 投票 0

设计函数API以避免对象生命周期问题

我有一个返回 lambda 的函数。 自动 make_scanner(std::vector const &v) { 自动开始 = v.cbegin(); 自动结束= v.cend(); return [begin, end] () 可变 -> in...

回答 1 投票 0

休息 - API url 中的“:”和“{}”有什么区别?

我在设计API时见过两种样式(/api/users/:uid 和 /api/users/{uid}): 它们有不同的含义吗?还是只是款式?

回答 1 投票 0

更新 API 以在给定日期选择时间选项后删除该选项

正在编写预订应用程序。我希望时间选项根据本地存储中保存的信息进行更新。应从可用内容中删除给定日期的选定时间选项...

回答 1 投票 0

设计模式HTTP API

我正在构建一个基于 REST API 提供的数据的应用程序。我使用 Alamofire 框架从 API 请求数据。目前一切正常,但很多地方都有点混乱

回答 1 投票 0

是否可以对同一个protobuf消息应用不同的protovalidate验证规则

我一直在考虑使用 protovalidate 来支持我拥有的复杂的 API 验证用例。 这是我的场景(简化)。我有一条原始消息,我们将其称为 FooRequest:

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.