Appveyor Projects были удалены, так как в этом проекте теперь используется Docker, а выбранные изображения Docker основаны на Linux (по причинам размера и скорости)
Если вы нашли этот проект полезным, либо в качестве библиотеки, которую вы используете, либо в качестве инструмента обучения, пожалуйста, подумайте о покупке кофе:
Чтобы построить и запустить изображение Docker, используйте следующие команды:
docker build . -t dwcheckapidocker run -p 8080:5000 dwcheckapiЭто запустит последнюю сборку изображения Docker и выставит приложение по адресу http: // localhost: 8080/swagger.
Этот проект является реализованным веб -API Core .NET для перечисления всех (Canon) романов Discworld.
Он использует ядро Ontity Framework для связи с базой данных SQLite, которая содержит запись для каждого из романов Discworld.
Он был выпущен, как есть, используя лицензию MIT. Для получения дополнительной информации о лицензии MIT, пожалуйста, см. Файл LICENSE в корне репозитория, либо см. Заявление TL; DR для MIT для MIT
У Dwcheckapi есть кодекс поведения, которому должны придерживаться все участники, сопровождающие и форкеры. При вклад, поддержании, подрывании или любом другом способе изменения кода, представленного в этом репозитории, все пользователи должны согласиться с этим кодом поведения.
См. Code of Conduct.md для деталей.
Запросы на вытягивание приветствуются, но, пожалуйста, найдите время, чтобы прочитать Кодекс поведения, прежде чем отправить их или комментировать любую работу в этом репо.
Это должно быть выполнено до первого запуска приложения
Изменение в каталоге постоянства (то есть dwCheckApi/dwCheckApi.Persistence )
cd dwCheckApi.Persistence
Выпустите команду Entity Framework для обновления базы данных
dotnet ef database update
Это гарантирует, что все миграции используются для создания или изменения местного экземпляра базы данных, готовых к посевам (см. Seeding the Database )
Изменение в каталоге API (то есть dwCheckApi/dwCheckApi )
cd dwCheckApi
Выпустите команду RESTORE dotnet (это разрешает все пакеты NUGET)
dotnet restore
Выпустите команду dotnet Build
dotnet build
Выпустите команду dotnet Run
dotnet run
Это запустит веб -сервер Kestrel, загрузит приложение dwCheckApi и сообщит вам через терминал, каким будет URL для доступа dwCheckApi . Обычно это будет http://localhost:5000 , но это может быть отличаться в зависимости от конфигурации вашей системы.
Существует ряд конечных точек API, связанных с очисткой и посевами базы данных. Их можно найти по адресу:
/Database/DropData
/Database/SeedData
Эти две команды (используемые в сочетании друг с другом) будут отбросить все данные из базы данных, а затем засеяют базу данных (соответственно) из ряда файлов JSON, которые можно найти в каталоге SeedData .
dwCheckApi был разработан таким образом, чтобы пользователь мог добавить столько данных, сколько ему нравятся через файлы JSON. Это означает, что dwCheckApi не ограничивается романами и персонажами Discworld.
Пользователь этого API может изменить файлы JSON, отбросить данные и повторно и иметь совершенно другой набор данных - например, романы Стивена Кинга.
Этот репозиторий содержит библиотеку тестирования xunit.net. Чтобы запустить тесты:
Изменить каталог в каталог тестов
cd dwCheckApi.Tests
Выпустите команду RESTORE dotnet (это разрешает все пакеты NUGET)
dotnet restore
Выпустить команду xunit
dotnet xunit
Все тесты будут выполнены против новой сборки dwCheckApi , и результаты будут возвращены в окне Open Shell/командной строки.
dwCheckApi имеет следующие контроллеры:
Книги
Контроллер Books имеет два метода:
Получать
Действие Get принимает целочисленный идентификатор. Это поле представляет собой орламент для романа. Этот заказ основан на порядок выпуска, поэтому, если пользователь хотят данные о «Night Watch», он установит запрос GET на:
/Books/Get/29
Это вернет следующие данные 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"
]
}
Поиск
Действие Search принимает параметр строки с именем searchString . dwCheckApi будет искать следующие поля всех записей книг и возвращать один раз, которые имеют какие -либо совпадения:
Если пользователь хочет найти Prase "Rincewind", то он должен выдать следующий запрос:
/Books/Search?searchString=Rincewind
Это вернет следующие данные 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" : []
}
]
Персонажи
Контроллер Characters имеет два метода:
Действие Get принимает целочисленный идентификатор. Это поле представляет идентификатор записи символа в базе данных. Не рекомендуется, чтобы потребитель этого API использовал этот метод контроллера, поскольку запись ID полностью зависит от порядка, в котором основное ядро объекта сохраняет записи в базу данных при создании набора данных, и это непредсказуемо. Он включен здесь для полноты и, вероятно, будет удален в более поздней версии.
Этот заказ основан на порядок выпуска, поэтому, если пользователь хотят данные о «Night Watch», он установит запрос GET на:
/Characters/Get/4
Это вернет данные JSON, аналогичные этому (см. Выше для того, чтобы конкретная сущность символов может быть не одинаковой при запуске в недавно созданной базе данных):
{
"characterName":"The Luggage",
"books":
[
"The Colour of Magic"
]
}
Действие Search принимает параметр строки с именем searchString . dwCheckApi будет искать имена всех записей символов и вернет те, которые соответствуют.
Если пользователь хочет найти Prase "ri", он должен выдать следующий запрос:
/Characters/Search?searchString=ri
Это вернет следующие данные JSON:
[
{
"characterName":"Ridcully",
"books":
[
"The Colour of Magic"
]
},
{
"characterName":"Rincewind",
"books":
[
"The Colour of Magic"
]
}
]
L-Space Wiki в настоящее время используется для засадки базы данных.
Все данные о характере и книгах защищены авторским правом Терри Пратчетт и/или издателям Transworld. Недоступное нарушение не предназначено.
В каталоге SeedData есть коллекция файлов JSON. Источник данных для этих файлов представляет собой комбинацию L-Space Wiki (упомянутое выше) и Y собственные знания серии Discworld.
Я никоим образом не изменял данные из L-Space Wiki при преобразовании в файлы JSON. Таким образом, лицензия Wiki L-Space (которая представляет собой лицензию Creative Commons Attribution 3.0) по-прежнему применяется.
Для получения дополнительной информации о лицензии, используемой Wiki L-Space, см. Файл Data License.md .