Свифт не может отправить данные в DynamoDB через лямбду - PullRequest
0 голосов
/ 04 апреля 2019

Я нахожусь в процессе создания приложения для iOS с использованием безсерверного дизайна с AWS Lambda.У меня настроен API-шлюз, и я могу получать данные из базы данных.

Когда я иду на POST, я сталкиваюсь с проблемами.Я был в шлюзе API и смог успешно проверить мои отношения API / Lambda.Я экспортировал и конвертировал модели через Swagger в Swift.У меня есть импортированные в моем проекте, и я пытаюсь вызвать мой пост API с помощью функции ниже (saveBtn).Кажется, что все работает, но я никогда не получаю новую запись, когда смотрю в БД.

Ниже я прикрепил функцию, которую я вызываю в XCode, а также модель из API Gateway и отображение ответов интеграции.В самом низу я добавил сгенерированный код из Swagger, и я думаю, что именно в этом и заключается проблема: когда я тестирую в APIGateway, он работает правильно.

//FUNCTION IN XCODE
...
@IBAction func saveBtn(_ sender: Any) {
        let userData = FullUserData.init(userId: "itsAUserId", birthday: 10041999, city: "Los Angeles", company: "TestCo", education: "high school", identityId: "240", name: "alex lowe", occupation: "software developer", priceRange: 99, salary: 90, userType: 1)

DefaultAPI.saveUserPost(fullUserData: userData) { (resp, error) in
            print(resp)
        }
    }
}

//MODEL FROM API GATEWAY
{
    "title":"fullUserData",
    "type":"object",
    "properties":{
        "userId": {"type":"string"}, 
        "birthday": {"type":"integer"},
        "city": {"type":"string"},
        "company": {"type":"string"}, 
        "education": {"type":"string"},
        "identityId": {"type":"string"},
        "name": {"type":"string"}, 
        "occupation": {"type":"string"},
        "priceRange": {"type":"integer"}, 
        "salary": {"type":"integer"}, 
        "userType": {"type":"integer"}
    }
}


//integration request mapping

#set($inputRoot = $input.path('$'))
{
  "userId" : "$inputRoot.get('userId')",
  "birthday" : "$inputRoot.get('birthday')",
  "city" : "$inputRoot.get('city')",
  "company" : "$inputRoot.get('company')",
  "education" : "$inputRoot.get('education')",
  "identityId" : "$inputRoot.get('identityId')",
  "name" : "$inputRoot.get('name')",
  "occupation" : "$inputRoot.get('occupation')",
  "priceRange" : "$inputRoot.get('priceRange')",
  "salary" : "$inputRoot.get('salary')",
  "userType" : "$inputRoot.get('userType')"
}

    ---
//CODE GENERATED BY SWAGGER

      /getUser:
        get:
      produces:
      - "application/json"
      responses:
        200:
          description: "200 response"
          schema:
            $ref: "#/definitions/Empty"
    post:
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "fullUserData"
        required: true
        schema:
          $ref: "#/definitions/fullUserData"
      responses:
        200:
          description: "200 response"
          schema:
            $ref: "#/definitions/Empty"
    x-amazon-apigateway-any-method:
      responses:
        200:
          description: "200 response"
      security:
      - sigv4: []
  /getUser/{userId}:
    get:
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "userId"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "200 response"
          schema:
            $ref: "#/definitions/User"
  /saveUser:
    post:
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "fullUserData"
        required: true
        schema:
          $ref: "#/definitions/fullUserData"
      responses:
        200:
          description: "200 response"
          schema:
            $ref: "#/definitions/Empty"
    x-amazon-apigateway-any-method:
      responses:
        200:
          description: "200 response"
      security:
      - sigv4: []
securityDefinitions:
  sigv4:
    type: "apiKey"
    name: "Authorization"
    in: "header"
    x-amazon-apigateway-authtype: "awsSigv4"
definitions:
  Empty:
    type: "object"
    title: "Empty Schema"
  User:
    type: "object"
    properties:
      userId:
        type: "string"
    title: "User"
  fullUserData:
    type: "object"
    properties:
      userId:
        type: "string"
      birthday:
        type: "integer"
      city:
        type: "string"
      company:
        type: "string"
      education:
        type: "string"
      identityId:
        type: "string"
      name:
        type: "string"
      occupation:
        type: "string"
      priceRange:
        type: "integer"
      salary:
        type: "integer"
      userType:
        type: "integer"
    title: "fullUserData"
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...