小编att*_*mos的帖子

Django Rest Framework使OnetoOne关系船感觉它是一个模型

User保存了两个不同的模型,UserProfile并且User.现在从API的角度来看,没有人真正关心这两者是不同的.

所以我在这里:

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'first_name', 'last_name', 'email')
Run Code Online (Sandbox Code Playgroud)

class UserPSerializer(serializers.HyperlinkedModelSerializer):
    full_name = Field(source='full_name')
    class Meta:
        model = UserProfile
        fields = ('url', 'mobile', 'user','favourite_locations')
Run Code Online (Sandbox Code Playgroud)

所以在UserPSerializer该领域user只是该资源的链接.但从用户的角度来看,根本没有理由让他知道User.

是否有一些技巧可以将它们混合在一起并作为一个模型呈现给用户,或者我必须以某种方式手动执行此操作.

django rest django-models django-rest-framework

39
推荐指数
3
解决办法
1万
查看次数

无法解析AFNetworking的responseObject中的JSON

我已经阅读了这个问题并尝试从Swift中的AFNetworking的responseObject解析JSON,但结果总是如此nil.

以下摘自我的代码:

let manager = AFHTTPRequestOperationManager()

manager.requestSerializer = AFJSONRequestSerializer()
manager.responseSerializer = AFJSONResponseSerializer()
manager.requestSerializer.setAuthorizationHeaderFieldWithUsername(username, password: password)

manager.POST("endpoint-that-respond-token-in-json",
    parameters: nil,
    success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in
        println(responseObject.description) // { token = "bd8f26da-219a-4a88-be80-b09207dfc067"; }

        var x: NSString = responseObject.description

        var error: NSError?
        var data = x.JSONString().dataUsingEncoding(NSUTF8StringEncoding)
        println(data) // <227b5c6e 20202020 746f6b65 6e203d20 5c226539 35613462 36642d38 6361612d 34343537 2d623937 612d3330 63613236 62316338 34315c22 3b5c6e7d 22>

        var dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
        println(dataString) // "{\n    token = \"e95a4b6d-8caa-4457-b97a-30ca26b1c841\";\n}"


        var …
Run Code Online (Sandbox Code Playgroud)

json afnetworking swift

7
推荐指数
1
解决办法
6263
查看次数

如何更改Spring-WS的"SOAP-ENV"默认前缀

我使用Spring-WS创建了一个Web服务.为了保持与旧系统的兼容性,我需要将名称空间前缀从更改SOAP-ENVsoap.

我知道,SOAP-ENVsoap只是命名空间前缀.只要它们引用正确的命名空间("http://schemas.xmlsoap.org/soap/envelope/"),就应该没问题.

但是旧系统对解析器代码进行了硬编码,只期望soap命名空间前缀.

目前的回应:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
   ...
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)

预期回复:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header/>
   <soap:Body>
   ...
   </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的内容

  1. 创建EndpointInterceptorAdapter子类.这将拦截SOAP响应/错误并更改SOAP信封.这有效,但在性能方面并不理想.

    public class CustomEndpointInterceptor extends EndpointInterceptorAdapter {
    
      private static final String DEFAULT_NS = "xmlns:SOAP-ENV";
      private static final String SOAP_ENV_NAMESPACE = "http://schemas.xmlsoap.org/soap/envelope/";
      private static final String PREFERRED_PREFIX = "soap";
      private static final String HEADER_LOCAL_NAME = "Header";
      private static final String BODY_LOCAL_NAME = "Body";
      private static final String …
    Run Code Online (Sandbox Code Playgroud)

java spring soap web-services spring-ws

6
推荐指数
2
解决办法
2万
查看次数