0
respostas

Instanciar objeto com dados de uma webapi

Já pesquisei em vários sites e vídeos do YouTube e não encontro nada sobre isso, se houver alguém com disposição para me demonstrar esse código agradeço, porque não me basta olhar a documentação da Apple, gostaria de uma explicação de alguém que entenda do assunto e até me dizer se é uma boa pratica desenvolver algo nessa linha de raciocínio

Tenho um webapi que retorna uma lista de provas em JSON:

{
  "Provas": [
    {
      "Codigo": "16505984073",
      "Disciplina": {
        "Codigo": "657060",
       "Nome": "SOCIOLOGIA E EDUCAÇÃO"
      },
      "Tipo": "SUB",
      "Correcao": "2016-07-01T14:33:33.383",
     },
    {
      "Codigo": "16994242303",
      "Disciplina": {
        "Codigo": "652640",
        "Nome": "EDUCAÇÃO DE JOVENS E ADULTOS: FUNDAMENTOS E METODOLOGIA"
      },
      "Tipo": "SUB",
      "Correcao": "2016-06-30T11:53:11.207",
     },
    {
      "Codigo": "16916014662",
      "Disciplina": {
        "Codigo": "652540",
        "Nome": "METODOLOGIA E PRÁTICA DO ENSINO DA HISTÓRIA E GEOGRAFIA"
      },
      "Tipo": "BIMESTRAL",
      "Correcao": "2016-06-29T09:42:29.097",
     },
    {
      "Codigo": "16892010587",
      "Disciplina": {
        "Codigo": "656140",
       "Nome": "GESTÃO EDUCACIONAL"
      },
      "Tipo": "BIMESTRAL",
      "Correcao": "2016-06-25T14:49:57.17",
     },
    {
      "Codigo": "16435696693",
      "Disciplina": {
        "Codigo": "611460",
        "Nome": "ORIENTAÇÃO EM SUPERVISÃO ESCOLAR E ORIENTAÇÃO EDUC"
      },
      "Tipo": "BIMESTRAL",
      "Correcao": "2016-05-04T15:42:08.363",
     },
    {
      "Codigo": "16781197682",
      "Disciplina": {
        "Codigo": "567140",
        "Nome": "EDUCAÇÃO INCLUSIVA"
      },
      "Tipo": "SUB",
      "Correcao": "2016-05-04T15:38:09.707",
     },
    {
      "Codigo": "16496847758",
      "Disciplina": {
        "Codigo": "554740",
        "Nome": "PEDAGOGIA INTEGRADA"
      },
      "Tipo": "SUB",
      "Correcao": "2016-05-03T15:45:38.553",
     },
    {
      "Codigo": "16640802740",
      "Disciplina": {
        "Codigo": "538740",
        "Nome": "METODOLOGIA DO TRABALHO ACADÊMICO"
      },
      "Tipo": "SUB",
      "Correcao": "2016-05-03T14:50:06.06",
     }
  ]
}

E criei uma classe chamada Prova

import Foundation

class Prova
{
    let codigo:String
    let tipo:String
    let dtcorrecao:NSDate
    let disciplina:Disciplina

    init(codigo:String, tipo:String, dtcorrecao:NSDate, disciplina:Disciplina)
    {
        self.codigo = codigo
        self.tipo = tipo
        self.dtcorrecao = dtcorrecao
        self.disciplina = disciplina
    }
}

e outra chama Disciplina

import Foundation

class Disciplina
{
    let codigo:String
    let nomedisciplina:String

    init(codigo:String, nomedisciplina:String)
    {
        self.codigo = codigo
        self.nomedisciplina = nomedisciplina
    }
}

Gostaria de preencher este retorno do wepapi instanciando meu objeto "Prova" e depois popular uma tableview até consegui fazer isso recebendo os dados do JSON usando o Alamofire e populando meu objeto com esses dados usando o ObjectMapper, porém gostaria de saber se há algo nativo do Swift 3.0 pois agora com a atualização da linguagem Alamofire e ObjectMapper estão dando muitos erros e tambem não acho trivial depender de soluções de terceiros. Também não sei se essa seria a boa pratica para trabalhar com dados web(Retornar dados em JSON e converter em Objeto), caso não seja poderiam me mostrar qual seria em codigo para Swift 3.0, estou com o Xcode 8 já.