.NET APIs Part 4 – Creating the APIs

We are, finally, ready to create our ASP.NET Core application that will host our traditional and our minimal APIs. (This series begins here.)

The code for this blog post is available here:
git clone https://github.com/JesseLiberty/Cars.git

Please note that WordPress seems to be broken and so the layout will be imperfect.

To get started, open Visual Studio 2022 and make sure you are fully up to date. Click on Create A New Project and select ASP.NET Core Web App, making sure that C# is the selected language

Give your project a name and a location

Choose .NET 7 as your Framework with no authentication and click Create.

If you’ve been following along with this tutorial already, you can steal from your earlier project. Otherwise, just type in the code.

Let’s start in appsettings.json where we will add the connection string to connect us to the database we created last time

Controllers

Key to creating your API is to create controllers. A controller is the class that holds the start of the logic that your API will use. This is much easier to demonstrate than to explain. Start by creating a folder named Controllers

Right click on your Controllers folder and create a class named CarController. For now, all our APIs will originate here. Let’s set up the top of the file by declaring a logger (supplied by Microsoft in the Microsoft.AppNetCore.MVC namespace) and an instance of our CarRepository

REST

We’ll be using REST for our APIs. There is much that you can know about REST, but for our purposes all we need to know is that we’ll be using the standard HTTP keywords to Post (Create), Get (Read), Put (Update) and Delete (Delete).

Starting Data

To have data to work with, I downloaded the Car Information Dataset from Kagel (Please read their licensing agreement before using this data elsewhere). I modified the CSV file to add an id column and an is_deleted column.

I then imported this data into a table, following the directions in this excellent tutorial. Finally, I dropped the id column and added it back as the identity column.

alter table car
add car_id_new int identity(1,1)
go

alter table car drop column id
go

exec sp_rename 'car_id_new', 'id'
go

At this point, I have a table with all the columns from the imported data, as well as an identity column.

Go to your car class (that we created in part 3) and modify it as follows (to match the incoming data):

public class Car
{
    public int id { get; set; }
    public string name { get; set; } = null!;
    public string mpg { get; set; } = null!;
    public string cylinders { get; set; } = null!;
    public string displacement { get; set; } = null!;
    public string horsepower { get; set; } = null!;
    public string weight { get; set; } = null!;
    public string acceleration { get; set; } = null!;
    public string model_year { get; set; } = null!;
    public string origin { get; set; } = null!;
    public string? is_deleted { get; set;}
}

Note that for now we are keeping things very simple. We will not declare DTOs, and so we will not deal with mapping. We’ll save that for a later blog post.

Creating Our First API

We are ready to create our first API. Its job will be to get all the cars in the database. We’ll do this by creating the API in a controller class and then invoking a method in our Car repository.

Create a Controllers folder, if you have not already, and in that folder create a CarController class. Add the following code to the top of the class:

    public class CarController : ControllerBase
    {
        private readonly ILogger<CarController> _logger;
        readonly CarRepository carRepository;

        public CarController(ILogger<CarController> logger,
            CarRepository carRepository)
        {
            _logger = logger;
            this.carRepository = carRepository;
        }

ControllerBase and ILogger are provided by Microsoft (thanks Satya!). Now, let’s create our API, which is a method decorated with the [HttpGet] attribute

 

Deceptively simple. This method returns a list of Car objects by calling GetAll on the carRepository. Let’s go look at that method:

(If you don’t already have a folder Repositories, please create one and add the class CarRepository). Here’s the top of the class:

You will need a using statement for Dapper.

We are now ready to implement the GetAll method:

    

This method will return the list of Car objects that we need, and defaults to not returning deleted records. We begin by creating a SqlBuilder – an object provided by Dapper. We then create our template, ending it with the syntax /**where**/ — this too is for Dapper and allows us to dynamically create our where clause.

You see this in the if statement; we’ll only add the where statement that restricts the results to non-deleted records if the parameter (returnDeletedRecords) is false.

Next we obtain a connection to the DataBase from our databaseConnectionFactory and finally we use that connection to call QueryAsync, identifying the type (Car) and passing in the SQL statement and the parameters to that statement, if any. In this simplified case we do not have any parameters, but we’ll see how to use them in a later blog post.

Testing with Postman

When you run your application Swagger will come up. Minimize that and open Postman, which is much more powerful and easier to work with (especially once we add authorization). Create a folder named Cars (of course, you can actually name it anything you like) and next to that folder click on the three dots that appear when you click on the name of the folder.

Choose Add Request, and rename your new request GetCars. Go to the right hand pane, and make sure the drop down is set to Get. Next to the drop down enter

https://localhost:7025/car

Be sure to substitute the port number (bold) to the one used by Swagger.

That’s all you have to do. Click Send in the upper right hand corner and your API will be called (don’t be afraid to set break points to prove this to yourself) which will call the method in the repository, which will in turn fetch your data from the database and it will all be returned to Postman…

Congratulations! You have your first working API to your back-end data stored in SQL Server!

In this coming blog posts we’ll add the remaining CRUD APIs, examine using services and DTOs and take a look at minimal APIs.


Rodrigo Juarez is a full-stack developer who has specialized in Xamarin in recent years and is now focusing on MAUI. He is also a book author. With over 25 years of experience, Rodrigo has contributed to a diverse array of projects, developing applications for web, desktop, and mobile platforms. Specialized in Microsoft technologies, he has expertise across various sectors, including management, services, insurance, pharmacy, and banking. Rodrigo Juarez can be reached at info@rodrigojuarez.com

Unknown's avatar

About Jesse Liberty

Jesse Liberty has three decades of experience writing and delivering software projects and is the author of 2 dozen books and a couple dozen online courses. Liberty is a Senior AI Engineer at the University of Pittsburgh Medical Center, and was a Team Lead and Senior Software Engineer for various corporations, a Senior Technical Evangelist for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS. He is a 21 year Microsoft MVP.
This entry was posted in API, Essentials. Bookmark the permalink.

658 Responses to .NET APIs Part 4 – Creating the APIs

  1. JamesThito's avatar JamesThito says:

    Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
    Давай разберёмся досконально – психиатр на дом в Москве

  2. DanielsautH's avatar DanielsautH says:

    https://mexicoexpharm.click/# best mexican online pharmacy

  3. Davidfus's avatar Davidfus says:

    online pharmacies in mexico: good online mexican pharmacy – mexican pharmacies near me

  4. score alerts's avatar score alerts says:

    That was inches away from being a goal! Insane!

  5. Davidfus's avatar Davidfus says:

    Viagra sans ordonnance 24h Amazon: Viagra homme prix en pharmacie – Viagra vente libre allemagne

  6. Seymourreorm's avatar Seymourreorm says:

    В этой медицинской статье мы погрузимся в актуальные вопросы здравоохранения и лечения заболеваний. Читатели узнают о современных подходах, методах диагностики и новых открытий в научных исследованиях. Наша цель — донести важную информацию и повысить уровень осведомленности о здоровье.
    Получить дополнительную информацию – вывод из запоя в наркологическом стационаре

  7. Howarddef's avatar Howarddef says:

    https://northbridgepharm.shop/# canada online pharmacy

  8. Williammiz's avatar Williammiz says:

    Этот обзор содержит информацию о передовых достижениях в области медицины. Мы разберем инновационные технологии, которые меняют подход к лечению и диагностике, а также их влияние на эффективность оказания медицинской помощи.
    Нажми и узнай всё – частный нарколог на дом москва

  9. NormanZen's avatar NormanZen says:

    Этот медицинский обзор сосредоточен на последних достижениях, которые оказывают влияние на пациентов и медицинскую практику. Мы разбираем инновационные методы лечения и исследований, акцентируя внимание на их значимости для общественного здоровья. Читатели узнают о свежих данных и их возможном применении.
    Подробности по ссылке – лечение алкоголизма на дому анонимно

  10. Bradleybreno's avatar Bradleybreno says:

    Этот обзор сосредоточен на различных подходах к избавлению от зависимости. Мы изучим традиционные и альтернативные методы, а также их сочетание для достижения максимальной эффективности. Читатели смогут открыть для себя новые стратегии и подходы, которые помогут в их борьбе с зависимостями.
    ТОП-5 причин узнать больше – принудительное лечение алкоголиков

  11. Travisascex's avatar Travisascex says:

    NorthBridge Pharmacy: canadian pharmacy online – canadian pharmacy

  12. LarryBak's avatar LarryBak says:

    На странице также можно использовать направление как отдельное описание услуги: нарколог на дом в — экстренная помощь при алкогольной и наркотической зависимости. В Балашихе такая помощь востребована при алкогольной интоксикации, запое, похмелье, абстиненции, наркотической ломке, тревожных симптомах и необходимости быстро получить консультацию без поездки в клинику.
    Изучить вопрос глубже – narkolog-na-dom-vyvod-iz-zapoya

  13. Strategic timeout called by the batting team. No way!

  14. Best score tracking site I’ve found so far. Deserved way more attention.

  15. Raymondmam's avatar Raymondmam says:

    Viagra homme sans ordonnance belgique: Viagra sans ordonnance livraison 48h – Viagra homme sans ordonnance belgique

  16. DonaldMet's avatar DonaldMet says:

    Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
    Кликни и узнай всё! – нужен нарколог на дом

  17. Donaldtal's avatar Donaldtal says:

    В статье по вопросам здоровья мы рассматриваем актуальные проблемы, с которыми сталкивается общество. Обсуждаются заболевания, факторы риска и важные аспекты профилактики. Читатели получат полезные советы о том, как сохранить здоровье и улучшить качество жизни.
    Узнайте всю правду – похмельные капельницы

  18. BrianShism's avatar BrianShism says:

    В статье рассматриваются различные стратегии борьбы с зависимостями, включая проверенные методы и реальные истории успеха. Читатель узнает, какие подходы наиболее эффективны и как начать путь к выздоровлению.
    Открыть полностью – Вывод из запоя в Королеве

  19. Jeffreysnisk's avatar Jeffreysnisk says:

    Эта публикация посвящена актуальным вопросам современной медицины и здравоохранения. Мы обсудим новейшие технологии диагностики и лечения, а также их влияние на продолжительность и качество жизни. Читатель найдет здесь информацию о научных исследованиях и перспективных разработках, доступно изложенную для широкой аудитории.
    Есть чему поучиться – наркологический центр воронеж

  20. RusselFom's avatar RusselFom says:

    В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
    Осуществить глубокий анализ – clinica plus в курске

  21. Michaelbof's avatar Michaelbof says:

    В этой статье мы обсудим процесс восстановления после зависимостей, акцентируя внимание на различных методах и подходах к реабилитации. Читатели узнают, как создать план выздоровления и использовать полезные ресурсы для достижения устойчивых изменений.
    Детали по клику – нарколога на дому

  22. Jamesswopy's avatar Jamesswopy says:

    apotek pÃ¥ nätet med hemleverans: henna hÃ¥rfärg apotek – Svenska Pharma

  23. thanks to the author for taking his time on this one.

  24. Shaunalgob's avatar Shaunalgob says:

    В этой статье мы рассмотрим современные достижения в области медицины, включая инновационные методы лечения и диагностики. Мы обсудим важность профилактики заболеваний и роль технологий в улучшении качества здравоохранения. Читатели узнают о влиянии медицины на повседневную жизнь и ее значение для современного общества.
    Провести детальное исследование – clinica plus

  25. MichaelHat's avatar MichaelHat says:

    В этой медицинской статье мы погрузимся в актуальные вопросы здравоохранения и лечения заболеваний. Читатели узнают о современных подходах, методах диагностики и новых открытий в научных исследованиях. Наша цель — донести важную информацию и повысить уровень осведомленности о здоровье.
    Подробнее можно узнать тут – лечении наркомании в Москве

  26. ThomasSob's avatar ThomasSob says:

    Эта доказательная статья представляет собой глубокое погружение в успехи и вызовы лечения зависимостей. Мы обращаемся к научным исследованиям и опыту специалистов, чтобы предоставить читателям надежные данные об эффективности различных методик. Изучите, что работает лучше всего, и получите информацию от экспертов.
    Ознакомиться с теоретической базой – капельница от похмелья в Магадане

  27. Danieldep's avatar Danieldep says:

    Эта статья подробно расскажет о процессе выздоровления, который включает в себя эмоциональную, физическую и психологическую реабилитацию. Мы обсуждаем значимость поддержки и наличие профессиональных программ. Читатели узнают, как строить новую жизнь и не возвращаться к старым привычкам.
    Не пропусти важное – клиника плюс

  28. Jameshab's avatar Jameshab says:

    В этой статье рассматриваются способы преодоления зависимости и успешные истории людей, которые справились с этой проблемой. Мы обсудим важность поддержки со стороны близких и профессионалов, а также стратегии, которые могут помочь в процессе выздоровления. Научитесь первоочередным шагам к новой жизни.
    Лови подробности – clinica plus

  29. Robertscals's avatar Robertscals says:

    Prix du Viagra en pharmacie en France: Viagra sans ordonnance livraison 48h – Le gГ©nГ©rique de Viagra

  30. DavidZitty's avatar DavidZitty says:

    В этой статье рассматривается комплексный подход к избавлению от зависимости. Читатель узнает, как сочетание физического, психологического и духовного восстановления помогает достичь стойкого выздоровления.
    Что ещё нужно знать? – нарколог на дом вывод из запоя на дому

  31. Jamesswopy's avatar Jamesswopy says:

    Viagra générique sans ordonnance en pharmacie: Viagra prix pharmacie paris – Viagra homme prix en pharmacie

  32. Alfredwep's avatar Alfredwep says:

    В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
    Связаться за уточнением – сексолог калуга

  33. Goodinimal's avatar Goodinimal says:

    Эта публикация содержит ценные советы и рекомендации по избавлению от зависимости. Мы обсуждаем различные стратегии, которые могут помочь в процессе выздоровления и важность обращения за помощью. Читатели смогут использовать полученные знания для улучшения своего состояния.
    Читать полностью – вывод из запоя на дому самара круглосуточно

  34. ClaudeoptOg's avatar ClaudeoptOg says:

    В данной статье мы акцентируем внимание на важности поддержки в процессе выздоровления. Мы обсудим, как друзья, семья и профессионалы могут помочь тем, кто сталкивается с зависимостями. Читатели получат практические советы, как поддерживать близких на пути к новой жизни.
    Секреты успеха внутри – clinica plus

  35. Richardkig's avatar Richardkig says:

    Viagra vente libre allemagne: Viagra pas cher inde – Viagra vente libre pays

  36. Richardkig's avatar Richardkig says:

    Viagra sans ordonnance livraison 24h: Acheter Sildenafil 100mg sans ordonnance – SildГ©nafil Teva 100 mg acheter

  37. DonaldRag's avatar DonaldRag says:

    В этой статье рассматривается комплексный подход к избавлению от зависимости. Читатель узнает, как сочетание физического, психологического и духовного восстановления помогает достичь стойкого выздоровления.
    Читать далее > – прокапаться от алкоголя самара цена

  38. FelixJen's avatar FelixJen says:

    Эта медицинская заметка содержит сжатую информацию о новых находках и методах в области здравоохранения. Мы предлагаем читателям свежие данные о заболеваниях, профилактике и лечении. Наша цель — быстро и доступно донести важную информацию, которая поможет в повседневной жизни и понимании здоровья.
    Подробная информация доступна по запросу – вывода из запоя на дому в Иркутске

  39. CharlesMox's avatar CharlesMox says:

    В этой заметке мы представляем шаги, которые помогут в процессе преодоления зависимостей. Рассматриваются стратегии поддержки и чек-листы для тех, кто хочет сделать первый шаг к выздоровлению. Наша цель — вдохновить читателей на положительные изменения и поддержать их в трудных моментах.
    Смотри, что ещё есть – клиника плюс

  40. gay porn's avatar gay porn says:

    Excellent goods from you, man. I’ve understand your stuff previous to and you’re just too excellent. I actually like what you have acquired right here, certainly like what you’re saying and the best way wherein you say it. You are making it entertaining and you continue to take care of to stay it wise. I can’t wait to learn much more from you. That is actually a wonderful website.

  41. WilliamDak's avatar WilliamDak says:

    В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
    Изучить материалы по теме – вывод из запоя с выездом

  42. HaroldwougH's avatar HaroldwougH says:

    Медицинская публикация представляет собой свод актуальных исследований, экспертных мнений и новейших достижений в сфере здравоохранения. Здесь вы найдете информацию о новых методах лечения, прорывных технологиях и их практическом применении. Мы стремимся сделать актуальные медицинские исследования доступными и понятными для широкой аудитории.
    Следуйте по ссылке – [url=https://mmo5.info/pochemu-alkogolik-schitaetsya-zavisimym-chelovekom.html]Кодирование от алкоголизма в Ижевске[/url]

  43. DavidExoca's avatar DavidExoca says:

    Этот обзор медицинских исследований собрал самое важное из последних публикаций в области медицины. Мы проанализировали ключевые находки и представили их в доступной форме, чтобы читатели могли легко ориентироваться в актуальных темах. Этот материал станет отличным подспорьем для изучения медицины.
    Подробнее тут – клиника плюс химки

  44. Kevinjep's avatar Kevinjep says:

    В этой медицинской статье мы погрузимся в актуальные вопросы здравоохранения и лечения заболеваний. Читатели узнают о современных подходах, методах диагностики и новых открытий в научных исследованиях. Наша цель — донести важную информацию и повысить уровень осведомленности о здоровье.
    Полная информация здесь – clinica plus в кашире

  45. Charlescet's avatar Charlescet says:

    В этой статье рассматриваются различные аспекты избавления от зависимости, включая физические и психологические методы. Мы обсудим поддержку, мотивацию и стратегии, которые помогут в процессе выздоровления. Читатели узнают, как преодолеть трудности и двигаться к новой жизни без зависимости.
    Всё, что нужно знать – doneck clinica plus

  46. Andrewpus's avatar Andrewpus says:

    В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
    Где можно узнать подробнее? – Психиатр на дом в Химках

  47. SidneyFef's avatar SidneyFef says:

    В данном обзоре представлены основные направления и тренды в области медицины. Мы обсудим актуальные проблемы здравоохранения, свежие открытия и новые подходы, которые меняют представление о лечении и профилактике заболеваний. Эта информация будет полезна как специалистам, так и широкой публике.
    Получить полную информацию – clinica plus

  48. Matthewbus's avatar Matthewbus says:

    В данной статье рассматриваются физиологические и эмоциональные аспекты зависимости. Мы обсудим, как организм реагирует на зависимое поведение, и какие методы помогают восстановить здоровье и внутреннее равновесие.
    Личный опыт — читайте сами – korolyov clinica plus

Comments are closed.