Os projetos de aplicativos foram removidos, pois este projeto agora usa o Docker e as imagens escolhidas do Docker são baseadas em Linux (por razões de tamanho e velocidade)
Se você achou esse projeto útil, como uma biblioteca que você usa ou como uma ferramenta de aprendizado, considere me comprar um café:
Para construir e executar a imagem do Docker, use os seguintes comandos:
docker build . -t dwcheckapidocker run -p 8080:5000 dwcheckapiIsso executará a construção mais recente da imagem do Docker e exporá o aplicativo em http: // localhost: 8080/swagger.
Este projeto é uma API da Web .NET Core implementada para listar todos os romances (Canon) Discworld.
Ele usa o Entity Framework Core para se comunicar com um banco de dados SQLite, que contém um registro para cada um dos romances do Discworld.
Foi lançado, como está, usando uma licença do MIT. Para obter mais informações sobre a licença do MIT, consulte o arquivo LICENSE na raiz do repositório ou consulte a página legal do TL;
A DWCHECKAPI possui um código de conduta que todos os colaboradores, mantenedores e empilhadores devem aderir. Ao contribuir, manter, forçar ou de qualquer outra maneira, alterar o código apresentado neste repositório, todos os usuários devem concordar com esse código de conduta.
Consulte Code of Conduct.md para obter detalhes.
As solicitações de tração são bem -vindas, mas reserve um momento para ler o código de conduta antes de enviá -las ou comentar qualquer trabalho neste repositório.
Isso precisará ser perfurado antes de executar o aplicativo pela primeira vez
Mudança para o diretório de persistência (ou seja, dwCheckApi/dwCheckApi.Persistence )
cd dwCheckApi.Persistence
Emitir o comando Entity Framework para atualizar o banco de dados
dotnet ef database update
Isso garantirá que todas as migrações sejam usadas para criar ou alterar a instância do banco de dados local, pronta para a semeadura (consulte Seeding the Database )
Mude para o diretório da API (ou seja, dwCheckApi/dwCheckApi )
cd dwCheckApi
Emitir o comando dotnet RESTORE (isso resolve todos os pacotes Nuget)
dotnet restore
Emitir o comando de construção dotnet
dotnet build
Emitir o comando dotnet run
dotnet run
Isso iniciará o servidor da web Kestrel, carregará o aplicativo dwCheckApi e informará, através do terminal, qual será o URL para acessar dwCheckApi . Geralmente, isso será http://localhost:5000 , mas pode ser diferente com base na configuração do seu sistema.
Há uma série de pontos de extremidade da API relacionados à limpeza e semeadura do banco de dados. Estes podem ser encontrados em:
/Database/DropData
/Database/SeedData
Esses dois comandos (usados em conjunto) soltarão todos os dados do banco de dados e, em seguida, semearão o banco de dados (respectivamente) de uma série de arquivos JSON que podem ser encontrados no diretório SeedData .
dwCheckApi foi projetado para que o usuário possa adicionar o máximo de dados como eles gostarem através dos arquivos JSON. Isso significa que dwCheckApi não se limita a romances e personagens de discussão.
Um usuário desta API pode alterar os arquivos JSON, soltar os dados e a ReAmed e ter um conjunto de dados completamente diferente - talvez romances de Stephen King, por exemplo.
Este repositório contém uma biblioteca de testes xunit.net. Para executar os testes:
Alterar diretório para o diretório de testes
cd dwCheckApi.Tests
Emitir o comando dotnet RESTORE (isso resolve todos os pacotes Nuget)
dotnet restore
Emitir o comando xunit
dotnet xunit
Todos os testes serão executados contra uma nova construção de dwCheckApi e os resultados serão retornados na janela Open Shell/Comando Prompt.
dwCheckApi tem os seguintes controladores:
Livros
O controlador Books tem dois métodos:
Pegar
A ação Get requer um ID inteiro. Este campo representa o ordinal para o romance. Este ordinal é baseado na ordem de liberação; portanto, se o usuário desejar dados em 'Night Watch', eles definiriam uma solicitação para:
/Books/Get/29
Isso retornará os seguintes dados JSON:
{
"bookOrdinal":29,
"bookName":"Night Watch",
"bookIsbn10":"0552148997",
"bookIsbn13":"9780552148993",
"bookDescription":"This morning, Commander Vimes of the City Watch had it all. He was a Duke. He was rich. He was respected. He had a titanium cigar case. He was about to become a father. This morning he thought longingly about the good old days. Tonight, he's in them.",
"bookCoverImage":null,
"bookCoverImageUrl":"http://wiki.lspace.org/mediawiki/images/4/4f/Cover_Night_Watch.jpg",
"characters" :
[
"Fred Colon",
"Nobby Nobbs",
"Rosie Palm",
"Samuel Vimes",
"The Patrician"
]
}
Procurar
A ação Search leva um parâmetro de string chamado searchString . dwCheckApi pesquisará os seguintes campos de todos os registros de livros e retornará uma vez que tiverem correspondências:
Se o usuário desejar procurar o prase "rincewind", deve emitir a seguinte solicitação:
/Books/Search?searchString=Rincewind
Isso retornará os seguintes dados JSON:
[
{
"bookId":23,
"bookOrdinal":2,
"bookName":"The Light Fantastic",
"bookIsbn10":"0861402030",
"bookIsbn13":"9780747530794",
"bookDescription":"As it moves towards a seemingly inevitable collision with a malevolent red star, the Discworld has only one possible saviour. Unfortunately, this happens to be the singularly inept and cowardly wizard called Rincewind, who was last seen falling off the edge of the world ....",
"bookCoverImage":null,
"bookCoverImageUrl":"http://wiki.lspace.org/mediawiki/images/f/f1/Cover_The_Light_Fantastic.jpg",
"characters":
[
"The Lady",
"Rincewind",
"The Partician",
"The Luggage",
"Blind Io",
"Fate",
"Death",
"Twoflower",
"Offler",
"Ridcully"
]
},
{
"bookId":30,
"bookOrdinal":9,
"bookName":"Eric",
"bookIsbn10":"0575046368",
"bookIsbn13":"9780575046368",
"bookDescription":"Eric is the Discworld's only demonology hacker. Pity he's not very good at it. All he wants is three wishes granted. Nothing fancy - to be immortal, rule the world, have the most beautiful woman in the world fall madly in love with him, the usual stuff. But instead of a tractable demon, he calls up Rincewind, probably the most incompetent wizard in the universe, and the extremely intractable and hostile form of travel accessory known as the Luggage. With them on his side, Eric's in for a ride through space and time that is bound to make him wish (quite fervently) again - this time that he'd never been born.",
"bookCoverImage":null,
"bookCoverImageUrl":"http://wiki.lspace.org/mediawiki/images/2/27/Cover_Eric_%28alt%29.jpg",
"characters" : []
},
{
"bookId":38,
"bookOrdinal":17,
"bookName":"Interesting Times",
"bookIsbn10":"0552142352",
"bookIsbn13":"9780552142359",
"bookDescription":"Mighty Battles! Revolution! Death! War! (and his sons Terror and Panic, and daughter Clancy). The oldest and most inscrutable empire on the Discworld is in turmoil, brought about by the revolutionary treatise What I Did On My Holidays. Workers are uniting, with nothing to lose but their water buffaloes. Warlords are struggling for power. War (and Clancy) are spreading through the ancient cities. And all that stands in the way of terrible doom for everyone is: Rincewind the Wizzard, who can't even spell the word 'wizard' ... Cohen the barbarian hero, five foot tall in his surgical sandals, who has had a lifetime's experience of not dying ...and a very special butterfly.",
"bookCoverImage":null,
"bookCoverImageUrl":"http://wiki.lspace.org/mediawiki/images/9/96/Cover_Interesting_Times.jpg",
"characters" : []
}
]
Caracteres
O controlador Characters tem dois métodos:
A ação Get requer um ID inteiro. Este campo representa o ID da entrada de caracteres no banco de dados. Não é recomendável que um consumidor desta API use esse método do controlador, pois a entrada de ID depende inteiramente da ordem em que o núcleo da estrutura da entidade persiste as entradas no banco de dados enquanto cria o conjunto de dados, e isso é imprevisível. Ele está incluído aqui para completude e provavelmente será removido em uma versão posterior.
Este ordinal é baseado na ordem de liberação; portanto, se o usuário desejar dados em 'Night Watch', eles definiriam uma solicitação para:
/Characters/Get/4
Isso retornará dados JSON semelhantes a este (veja acima por que a entidade de caractere específica pode não ser a mesma ao executar em um banco de dados recém -criado):
{
"characterName":"The Luggage",
"books":
[
"The Colour of Magic"
]
}
A ação Search leva um parâmetro de string chamado searchString . dwCheckApi pesquisará os nomes de todos os registros de personagens e retornará aqueles que correspondem.
Se o usuário desejar procurar o prase "RI", deve emitir a seguinte solicitação:
/Characters/Search?searchString=ri
Isso retornará os seguintes dados JSON:
[
{
"characterName":"Ridcully",
"books":
[
"The Colour of Magic"
]
},
{
"characterName":"Rincewind",
"books":
[
"The Colour of Magic"
]
}
]
O Wiki L-Space está atualmente sendo usado para semear o banco de dados.
Todos os dados de personagens e livros têm direitos autorais para os editores de Terry Pratchett e/ou TransWorld, nenhuma infração foi destinada.
No diretório do SEEDDATA, há uma coleção de arquivos JSON. A fonte de dados para esses arquivos é uma combinação do Wiki L-Space (mencionado acima) e Y Conhecimento próprio da série Discworld.
Não alterei nenhum dado do Wiki L-Space de forma alguma ao transformá-los nos arquivos JSON. Como tal, a licença Wiki L-Space (que é uma licença Creative Commons Attribution ShareAlike 3.0) ainda se aplica.
Para obter mais informações sobre a licença usada pelo Wiki L-Space, consulte o arquivo Data License.md .