Proyek Appveyor telah dihapus, karena proyek ini sekarang menggunakan Docker dan gambar Docker yang dipilih berbasis Linux (untuk alasan ukuran dan kecepatan)
Jika Anda telah menemukan proyek ini bermanfaat, baik sebagai perpustakaan yang Anda gunakan atau sebagai alat pembelajaran, silakan pertimbangkan untuk membelikan saya kopi:
Untuk membangun dan menjalankan gambar Docker, gunakan perintah berikut:
docker build . -t dwcheckapidocker run -p 8080:5000 dwcheckapiIni akan menjalankan build terbaru dari gambar Docker dan mengekspos aplikasi di http: // localhost: 8080/Swagger.
Proyek ini adalah Web API .NET Core yang diimplementasikan untuk mendaftarkan semua novel Discworld (Canon).
Ini menggunakan inti Entity Framework untuk berkomunikasi dengan database SQLite, yang berisi catatan untuk masing -masing novel Discworld.
Telah dirilis, apa adanya, menggunakan lisensi MIT. Untuk informasi lebih lanjut tentang lisensi MIT, silakan lihat salah satu file LICENSE di root repositori atau lihat halaman hukum TL; DR untuk MIT
DWCHECKAPI memiliki kode perilaku yang harus dipatuhi oleh semua kontributor, pengelola, dan garukan. Saat berkontribusi, memelihara, bercabang, atau dengan cara lain mengubah kode yang disajikan dalam repositori ini, semua pengguna harus menyetujui kode perilaku ini.
Lihat Code of Conduct.md untuk detailnya.
Permintaan tarik dipersilakan, tetapi luangkan waktu sejenak untuk membaca kode etik sebelum mengirimkannya atau mengomentari pekerjaan apa pun dalam repo ini.
Ini perlu diforbor sebelum menjalankan aplikasi untuk pertama kalinya
Ubah ke Direktori Kegigihan (yaitu dwCheckApi/dwCheckApi.Persistence )
cd dwCheckApi.Persistence
Mengeluarkan perintah Entity Framework untuk memperbarui database
dotnet ef database update
Ini akan memastikan bahwa semua migrasi digunakan untuk membuat atau mengubah instance basis data lokal, siap untuk penyemaian (lihat Seeding the Database )
Ubah ke direktori API (yaitu dwCheckApi/dwCheckApi )
cd dwCheckApi
Mengeluarkan perintah pemulihan dotnet (ini menyelesaikan semua paket nuget)
dotnet restore
Mengeluarkan perintah build dotnet
dotnet build
Mengeluarkan perintah run dotnet
dotnet run
Ini akan memulai server web Kestrel, memuat aplikasi dwCheckApi dan memberi tahu Anda, melalui terminal, apa URL untuk mengakses dwCheckApi nantinya. Biasanya ini akan menjadi http://localhost:5000 , tetapi mungkin berbeda berdasarkan konfigurasi sistem Anda.
Ada serangkaian titik akhir API yang terkait dengan kliring dan penyemaian database. Ini dapat ditemukan di:
/Database/DropData
/Database/SeedData
Dua perintah ini (digunakan bersama satu sama lain) akan menjatuhkan semua data dari database, kemudian seed database (masing -masing) dari serangkaian file JSON yang dapat ditemukan di direktori SeedData .
dwCheckApi telah dirancang sehingga pengguna dapat menambahkan data sebanyak yang mereka suka melalui file JSON. Ini berarti bahwa dwCheckApi tidak terbatas pada novel dan karakter Discworld.
Pengguna API ini dapat mengubah file JSON, menjatuhkan data dan mendapatkan kembali dan memiliki set data yang sama sekali berbeda - mungkin novel Stephen King, misalnya.
Repositori ini berisi perpustakaan uji xunit.net. Untuk menjalankan tes:
Ubah direktori ke direktori tes
cd dwCheckApi.Tests
Mengeluarkan perintah pemulihan dotnet (ini menyelesaikan semua paket nuget)
dotnet restore
Mengeluarkan perintah xunit
dotnet xunit
Semua tes akan dijalankan terhadap build baru dwCheckApi dan hasilnya akan dikembalikan di jendela Prompt Shell/Command Prompt.
dwCheckApi memiliki pengontrol berikut:
Buku
Pengontrol Books memiliki dua metode:
Mendapatkan
Tindakan Get mengambil ID Integer. Bidang ini mewakili ordinal untuk novel. Ordinal ini didasarkan pada pesanan rilis, jadi jika pengguna menginginkan data di 'night watch', mereka akan menetapkan permintaan mendapatkan:
/Books/Get/29
Ini akan mengembalikan data JSON berikut:
{
"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"
]
}
Mencari
Tindakan Search mengambil parameter string yang disebut searchString . dwCheckApi akan mencari bidang -bidang berikut dari semua catatan buku dan kembali sekali yang memiliki kecocokan:
Jika pengguna ingin mencari prase "Rincewind", maka mereka harus mengeluarkan permintaan berikut:
/Books/Search?searchString=Rincewind
Ini akan mengembalikan data JSON berikut:
[
{
"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" : []
}
]
Karakter
Pengontrol Characters memiliki dua metode:
Tindakan Get mengambil ID Integer. Bidang ini mewakili ID entri karakter dalam database. Tidak disarankan agar konsumen API ini menggunakan metode pengontrol ini, karena entri ID sepenuhnya bergantung pada urutan di mana inti kerangka kerja entitas tetap menggunakan entri ke database saat membuat dataset, dan ini tidak dapat diprediksi. Ini termasuk di sini untuk kelengkapan, dan mungkin akan dihapus dalam versi selanjutnya.
Ordinal ini didasarkan pada pesanan rilis, jadi jika pengguna menginginkan data di 'night watch', mereka akan menetapkan permintaan mendapatkan:
/Characters/Get/4
Ini akan mengembalikan data JSON yang mirip dengan yang ini (lihat di atas mengapa entitas karakter tertentu mungkin tidak sama ketika berjalan pada database yang baru dibuat):
{
"characterName":"The Luggage",
"books":
[
"The Colour of Magic"
]
}
Tindakan Search mengambil parameter string yang disebut searchString . dwCheckApi akan mencari nama semua catatan karakter, dan mengembalikan yang cocok.
Jika pengguna ingin mencari prase "RI", maka mereka harus mengeluarkan permintaan berikut:
/Characters/Search?searchString=ri
Ini akan mengembalikan data JSON berikut:
[
{
"characterName":"Ridcully",
"books":
[
"The Colour of Magic"
]
},
{
"characterName":"Rincewind",
"books":
[
"The Colour of Magic"
]
}
]
L-Space Wiki saat ini digunakan untuk menyemai database.
Semua data karakter dan buku dilindungi hak cipta dengan Terry Pratchett dan/atau Penerbit Transworld tidak ada pelanggaran yang dimaksudkan.
Di direktori seeddata, ada kumpulan file JSON. Sumber data untuk file-file ini adalah kombinasi dari wiki L-space (disebutkan di atas) dan pengetahuan sendiri dari seri Discworld.
Saya belum mengubah data apa pun dari wiki L-space dengan cara apa pun saat mengubahnya menjadi file JSON. Dengan demikian, lisensi L-Space Wiki (yang merupakan lisensi Creative Commons Attribution Sharealike 3.0) masih berlaku.
Untuk informasi lebih lanjut tentang lisensi yang digunakan oleh L-Space Wiki, silakan lihat file Data License.md .