我使用 Restaeasy (java) 创建一项 Rest 服务,该服务必须返回与调用的 URL 相同的 URL,但使用一个新字符串
呼叫服务示例:
Post => mybase/myservice/somewrite 并带有一些 JSON
| 响应 => mybase/myservice/somewrite/123456
所以我想用一种通用逻辑制作mybase/myservice/somewrite url,因为如果我输入String returnURL="mybase/myservice/somewrite";并更改,例如mybase响应的名称将不会很好
我想要这样的东西
someLogicService(JSON);
id=getId();
URL=getContextCallURL();
return URL+\/+id;
Run Code Online (Sandbox Code Playgroud)
但我不知道这是否可以做到,更不知道如何做到
我已经创建了 jhipster 演示应用程序,并想使用邮递员等工具检查我改编的休息 api。我尝试过基本身份验证,并将用户和密码设置为管理员、用户或系统。但他们都无法访问,并收到 401。
如果您能给我提示如何访问它,那就太好了。
干杯马库斯
当我定义 ModelSerializer 时,元类可用于定义要序列化的字段,它会自动继承模型中的所有字段:
class ClientSerializer(ModelSerializer):
class Meta:
model = Client
Run Code Online (Sandbox Code Playgroud)
我必须构建一个嵌套序列化器(基于 SerializerMethodField)。所以我必须定义要包含的字段:
class ClientSerializer(ModelSerializer)
address = SerializerMethodField('get_client_addresses')
class Meta:
model = Client
fields = ('address','name','city', <etc*>)
def get_client_addresses(self, obj):
addresses = Addresses.objects.all().filter(parent=obj)
serializer = AddressSerializer(addresses, many=True,
context={'request', self.context.get('request') })
return serializer.data
Run Code Online (Sandbox Code Playgroud)
问题:在这种情况下,我必须手动将所有客户端字段添加到字段元组中。我不想这样做,因为它看起来相当重复且对错误敏感。如何将“plus-1”字段(在本例中为地址)添加到使用 ModelSerialzer 时包含的默认字段???
注意:这是一个简化的示例。我有包含 40 多个字段的模型,并且必须对嵌套模型使用 SerializerMethodField,因为我必须将上下文数据(用户信息)传递给序列化器以进行我已实现的字段级身份验证。
(更新,地址是一个 SerializerMethodField,名称混淆了)
我想获取我正在使用 TripAdvisor API 的特定酒店的评分和评论。
我得到这个链接:
api.tripadvisor.com/api/partner/2.0/location/**8957**5?key=<YOUR KEY HERE>
Run Code Online (Sandbox Code Playgroud)
但如何获得酒店的唯一 ID(位置 ID)?
我使用 contentful 作为我的移动应用程序的后端。
比赛装置存储在 contentful 中。我想查询下一场比赛,但出现以下错误:
422 (Unprocessable Entity)
Run Code Online (Sandbox Code Playgroud)
我检索下一个匹配项的函数:
function nextOpponent(){
var content_Type = mainConfig.config.contentType.match // Matches
var order = "fields.datum";
var gt = new Date().toLocaleString();
console.log(gt);
var query = "content_type=" + content_Type +
"&order=" + order +
"&fields.datum%5Bgte%5D=" + encodeURI(gt);
contentful.entries(query).then(
//success
function(response){
$scope.nextMatch = response.data.items[0];
console.log($scope.nextMatch);
},
//error
function(response){
}
)
}
Run Code Online (Sandbox Code Playgroud) 我想深入了解库,然后深入到指定的文件夹,但我在获取“getFolderByServerRelativeUrl”来为我抓取任何内容时遇到问题。
这http://_base/_api/web/getFolderByServerRelativeUrl('LibName')/files将返回零结果。但如果我使用http://_base/_api/web/lists/getbytitle('LibName')/items它会返回多个项目。
我正在编写一个 RESTful 服务,其中一个端点将检查资源是否处于活动状态。
我正在努力让 RESTful 资源名称符合标准
我的路线 GET /api/v1/items/{itemid}/isActive -- 应该是什么?我正在做的(或想做的)就是在响应中发送 True/False。
或者我必须发送 404 响应吗?---> 这是一个简单的 get ,如果 notFound 则返回 404 ?
我只是在玩 spring-boot,只是想创建一个控制器method = RequestMethod.POST
我的控制器:
@RequestMapping(value = "/user/signup",
method = RequestMethod.POST)
private String signUpNewUser(@Valid @RequestBody SignInUserForm userForm){
// validation + logic
}
Run Code Online (Sandbox Code Playgroud)
注册用户表单类:
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class SignInUserForm {
@NotEmpty
@Email
private String email;
@NotEmpty
@Size(min = 8, max = 24)
private String password;
@NotEmpty
@Size(min = 8, max = 24)
private String repeatedPassword;
}
Run Code Online (Sandbox Code Playgroud)
最后是我的测试:
@Test
public void shouldCallPostMethod() throws Exception {
SignInUserForm signInUserForm = new SignInUserForm("test@mail.com", "aaaaaaaa", "aaaaaaaa");
String json = new Gson().toJson(signInUserForm);
mockMvc.perform(
MockMvcRequestBuilders.post("/user/signup")
.contentType(MediaType.APPLICATION_JSON_VALUE) …Run Code Online (Sandbox Code Playgroud) 我有一个 RESTful Web 服务,使用 Drop Wizard 0.8.5 和 Jersey 2.21。我有一个资源类,其注释为:
@Path("/mysite/somepath")
这个类包含各种方法,例如@GETs、@PUTS等,都工作得很好。
现在,我有另一个用@Path("/mysite"). 在此资源类中,我需要添加一些用路径注释的方法,如下所示:
@Path("/somepath/dothis")
@Path("/somepath/dothat")
Run Code Online (Sandbox Code Playgroud)
资源类都注册得很好。然而,当我调用第二个类时,我得到了 404,因为泽西岛似乎正在我的第一个类中寻找这些方法。除了更改我的 @Path 注释以避免这种命名冲突之外,还有其他方法可以解决此问题吗?
我有一个 RESTful API,可以在其中添加GET节点和Post节点 - 基本的东西。
我的“问题”是这样的:
当用户发布新节点时,该节点已经存在。我应该回来吗
400 bad request409 conflict200 and the existing node我倾向于 200 并返回现有节点。但是如果您愿意的话,409 然后让用户自己获取正确的节点似乎更“正确”。
对于 RESTful api 来说,在这个问题上的“最佳实践”是什么?
rest ×10
java ×2
angularjs ×1
api ×1
contentful ×1
date ×1
django ×1
dropwizard ×1
endpoints ×1
http-post ×1
jakarta-ee ×1
javascript ×1
jersey ×1
jersey-2.0 ×1
jhipster ×1
postman ×1
python-3.x ×1
resteasy ×1
servicestack ×1
sharepoint ×1
spring-boot ×1