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