22

IT-кот 11. Поехали!

10 кото-выпусков по введению в программирование IT-кот считает достаточным (это ведь не еда), следующие посты ожидаются скорее практическими, с некоторым налетом теории. Будет чего не понятно - пишите, IT-кот ответит.

IT-кот 11. Поехали! IT, Кот, Создание сайта, Образование, На Дерибасовской хорошая погода, Длиннопост

Практика у нас начнется с прогноза погоды. Потому что погода она: вроде можно на улицу, но все-таки еще нельзя. Поэтому начнем писать программу для погоды.

Как хорошо, что Microsoft, как и все, пусть не специально, но думает о котиках. Ведь не иначе как для них он позволяет создать шаблон погодной программы, просто вызвав в консоли (было здесь - https://pikabu.ru/@anikdv?page=2):

dotnet new webapi

В папке, в которой был вызов, создастся несколько файлов проекта. Нас интересуют только те, которые заканчиваются на .cs. Ежели у вас ни какие файлы не заканчиваются на .cs, то вы не там смотрите: откройте папку в Visual Studio Code. Таких файлов аж 4.


Первый (Program.cs) запускает наш сервис (мы ведь пишем не чего-то там, чего-то там закончилось, теперь будет чего-то здесь: котосайт с погодой). В главном методе осуществляется сборка и запуск сайта, во втором методе - его конфигурирование.


Второй (Startup.cs) описывает то, как именно надо сконфигурировать сайт. Первый метод в нем добавляет какие-то контроллеры и автогенерацию OpenApi. ("О боже, сколько кошачьей мяты употребил тот, кто это пишет?", - как бы спрашиваете вы; "Ща все будет", - отвечает он вам). Второй метод задает конкретные параметры работы тех или иных аспектов сайта (в базе это все те же контроллеры, OpenApi, принудительное использование HTTPS, и авторизация.


Третий (WeatherForecast.cs) содержит простое описание сведений о погоде.


Последний файл лежит в папке Controllers (WeatherForecastController.cs) и отвечает за вывод информации, которую мы обрабатываем (на самом деле пока нет, но потом будет - "пока да"). Итак, закрепим-с: контроллеры - это то, что позволяет нашему прекрасному сервису взаимодействовать с враждебным внешним миром).


Контроллер - класс специфический. Во-первых, он и его методы помечены атрибутами (для общего образования про атрибуты - здесь; для высшего же - достаточно воспринимать их как доп. характетристики классов/методов), Во-вторых, он, в отличие от трех других рассмотренных классов, наследуется от ControllerBase.

Атрибуты в классе WeatherForecastController позволяют задать адреса, по которым мы будем получать информацию, а также типы запросов (HttpGet - для получения информации с сервиса, HttpPost - для размещения информации на сервере). Метод у нас в созданном контроллере один: он возвращает какую-то информацию о погоде (как он ее получает пока не важно).


Ну все, осталось только ее получить. Для этого запускаем проет (либо dotnet run в консоли, либо F5 в VS code). Если запуск делается в консоли, то адрес можно найти в консольном выводе: https://localhost:5001. Если в VS code, то сайт откроется сам собой (при первом запуске правда надо на выбрать .NET Core в качестве окружения, а само приложение запустится только после второго F5).


Отлично, запуститли, возможно справились с тем, что браузер не хочет доверять нашему сайти и чего-то от нас хочет и получили - ничего... Как так? Проблема в том, что путь в параметре класса WeatherForecastController стоит какой-то [controller], его надо заменить на просто "/". И перезапустить проект еще раз (для остановки процесса нужно нажать Ctrl+c в консоли или Shift+F5 в VS code).


Ну уже чего-то. Но, однако, чего-это такое? Здесь мы видим ответ от сервера, который легко воспринимается компьютерами (зачем - поймем позже) и хоть как-то человеком (подробнее см. тут, а картинки - тут). Если вы, будучи человеком, хотите как-то адекватно поработать с этими данными, то здесь на сцену как раз и выходить OpenApi и полезные программы с ним работающие (например, postman).

Нам столько пользы не надо, поэтому откроем свой же сайт, перейдя по адресу /swagger (полный путь - https://localhost:5001/swagger/index.html). Здесь мы видим название нашего контроллера (правда без приписки Controller в конце), которое можно раскрыть. В раскрытом поле мы видим наш HttpGet (правда без Http). Нажав на него, можно открыть описание метода. Кнопка "Try it out" позволяет еще и запросы повыполнять, нажимая кнопку Execute. То, что нам приходит, можно посмотреть ниже - в разделе "Response body".


Что ж, пока, наверно, хватит. Но нет - исходный код проекта можно найти здесь. Проект будет периодически обновляться, но старые версии можно посмотреть в истории коммитов (где ее посмотреть - пишите, запилю оффтопик по системе контроля версий под названием GIT, ну или читайте это сами:)).

IT-кот 11. Поехали! IT, Кот, Создание сайта, Образование, На Дерибасовской хорошая погода, Длиннопост

Котомафия

125K пост35.4K подписчиков

Правила сообщества

В сообществе категорически запрещено:

✔Оскорблять других пользователей. Запрещено использование нецензурных выражений и ругательств. Замена части букв значками "@", "#", "$" и т. д. при вычислимости исходного слова не избавляет от ответственности. Категорически не рекомендуется использование грубо-просторечной лексики, а также упоминания физиологических отклонений;

✔ Сообщения не по теме. Публикуемые сообщения должны соответствовать заявленной теме сообщества;

✔Размещение постов о помощи животным в сообществе без обязательных тегов: #вдобрыеруки #помощь #без рейтинга

Так же напоминаем, что на Пикабу существует специальное сообщество ."Айболит. Помощь животным"

Дорогие друзья, которым не нравятся посты с просьбами о помощи животным, очень просим Вас добавить теги: #помощь #вдобрыеруки и др. в черный список.

✔Плагиат! Не присваивай себе чужие идеи, записи и другой авторский контент.

✔Некорректные комментарии в комментариях, откровенный флуд, провокации, пропаганду жестокого и безответственного отношения к животным и пр. участники заносятся в черный список без дополнительных пояснений и предупреждений!

✔Нарушать правила Пикабу.


Заметили нарушение правил: напишите @zluchkin, @Darsinka

Не забывайте ставить тег "моё", "кот", "котомафия" если выкладываете своих любимцев.

Мы есть в VK: @kotomafia_fan, отмечайте нас на Ваших фото.