Saule é uma biblioteca JSON API (versão 1.0) para ASP.Net Web API 2. Instale Saule usando NuGet:
Install-Package saule
Para usar o Saule, você deve definir recursos que contenham as informações sobre o seu domínio:
classe pública PersonResource: ApiResource{ public PersonResource() { Attribute("Nome"); Atributo("Sobrenome"); Atributo("Idade"); BelongsTo<CompanyResource>("Trabalho"); HasMany<PersonResource>("Amigos"); }}public class CompanyResource : ApiResource{ public CompanyResource() { Attribute("Nome"); Atributo("NúmeroDeFuncionários"); }}Você pode então usá-los para serializar qualquer classe na API Json (desde que sua classe tenha propriedades com os mesmos nomes do seu modelo):
classe pública PersonController: ApiController{ [HttpGet] [ReturnsResource(typeof(PersonResource))] [Route("pessoas/{id}")] public JohnSmith GetPerson(string id) { return new JohnSmith(); }} GET http://example.com/people/123{ "data": { "type": "person", "id": "123", "attributes": { "first-name": "John", " sobrenome": "Smith", "idade": 34
}, "relacionamentos": { "trabalho": { "links": { "self": "http://example.com/people/123/relationships/job/", "relacionado": "http://example .com/people/123/job/"
}, "dados": { "tipo": "empresa", "id": "456"
}
}, "amigos": { "links": { "self": "http://example.com/people/123/relationships/friends/", "relacionado": "http://example.com/people/ 123/amigos/"
}, "dados": [
{ "tipo": "pessoa", "id": "789"
}
]
}
}
}, "incluído": [
{ "tipo": "empresa", "id": "456", "atributos": { "nome": "Awesome, Inc.", "número de funcionários": 24
}
},
{ "tipo": "pessoa", "id": "789", "atributos": { "nome": "Sara", "sobrenome": "Jones", "idade": 38
}
}
], "links": { "self": "http://example.com/people/123"
}
}A desserialização funciona exatamente como na API Web normal; você não precisa fazer nada de especial para que isso funcione.
Siga as etapas abaixo para criar uma nova versão:
Crie um branch chamado release-v<version> (por exemplo, release-v1.5 )
Aumente o número da versão em appveyor.yml no master
Envie ambas as alterações e aguarde a compilação
Copie as notas de versão na descrição da versão no Github
Publique o novo lançamento