C# WebAPI generate web api and invoke via console

1.New WebApi solution,add controller,BooksController

namespace BooksServices.Models
{
    public class Book
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string ISBN { get; set; }
        public string Content { get; set; }
        public string PublishTime { get; set; }
        public string Summary { get; set; }
        public string Title { get; set; }
        public string Topic { get; set; }
    }
}



namespace BooksServices
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine(DateTime.Now);
            var builder = WebApplication.CreateBuilder(args);

            //Add CORS policy
            builder.Services.AddCors(options =>
            {
                options.AddPolicy("AllowAll",
                    builder =>
                    {
                        builder.AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader();
                    });
            });
            builder.Services.AddControllers();

            var app = builder.Build();

            app.UseCors("AllowAll");
            app.MapControllers();
            app.Run();
        }
    }
}



using BooksServices.Models;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace BooksServices.Controllers
{
   
    [ApiController]
    [Route("api/[controller]")]
    public class BooksController : ControllerBase
    {
        static int idx = 0;

        [HttpGet]
        public IActionResult GetBooks()
        {
            List<Book> booksList = new List<Book>();
            for (int i = 0; i < 10; i++)
            {
                ++idx;
                booksList.Add(new Book()
                {
                    Id = idx,
                    Name = $"Name_{idx}",
                    ISBN = $"ISBN_{idx}_{Guid.NewGuid():N}",
                    Content = $"Content_{idx}",
                    PublishTime = $"{DateTime.UtcNow.Ticks}",
                    Summary = $"Summary_{i}",
                    Title = $"Title_{i}",
                    Topic = $"Topic_{i}"
                });
            }
            return Ok(booksList);
        }
    }
}

 

Run the WebApplication

image

 

 

image

 

 

Microsoft.Hosting.Lifetime: Information: Now listening on: https://localhost:7236
Microsoft.Hosting.Lifetime: Information: Now listening on: http://localhost:5056
Microsoft.Hosting.Lifetime: Information: Application started. Press Ctrl+C to shut down.
Microsoft.Hosting.Lifetime: Information: Hosting environment: Development
Microsoft.Hosting.Lifetime: Information: Content root path: D:\C\BooksServices\BooksServices

 

Invoke the url 

//url
http://localhost:5056/api/books

2.Invoke the service via Powershell

curl.exe -k -X GET "http://localhost:5056/api/books"

 

image

 

 

image

 

 3.Invoke in Chrome 

http://localhost:5056/api/books

image

 

 

[{"id":1,"name":"Name_1","isbn":"ISBN_1_55d6550326804224a9da483aab118485","content":"Content_1","publishTime":"639004606064743061","summary":"Summary_0","title":"Title_0","topic":"Topic_0"},{"id":2,"name":"Name_2","isbn":"ISBN_2_673636d6e4ec4cec9b916ccb5423593e","content":"Content_2","publishTime":"639004606064745652","summary":"Summary_1","title":"Title_1","topic":"Topic_1"},{"id":3,"name":"Name_3","isbn":"ISBN_3_a7c7e59eb8c142e496bfff52ef22c8cd","content":"Content_3","publishTime":"639004606064745700","summary":"Summary_2","title":"Title_2","topic":"Topic_2"},{"id":4,"name":"Name_4","isbn":"ISBN_4_6bc2c89efe4e4c6698dff0a15759ad8d","content":"Content_4","publishTime":"639004606064745713","summary":"Summary_3","title":"Title_3","topic":"Topic_3"},{"id":5,"name":"Name_5","isbn":"ISBN_5_c2447b32cf494f1b91e96616a3df8165","content":"Content_5","publishTime":"639004606064745722","summary":"Summary_4","title":"Title_4","topic":"Topic_4"},{"id":6,"name":"Name_6","isbn":"ISBN_6_efea607812584cef84a3208da4d837fe","content":"Content_6","publishTime":"639004606064745742","summary":"Summary_5","title":"Title_5","topic":"Topic_5"},{"id":7,"name":"Name_7","isbn":"ISBN_7_aff6cc7ca2df4fb4b1dfcc6dcbfcb3cf","content":"Content_7","publishTime":"639004606064745750","summary":"Summary_6","title":"Title_6","topic":"Topic_6"},{"id":8,"name":"Name_8","isbn":"ISBN_8_4d0a9bcdd2b640f79491b3388cec8e61","content":"Content_8","publishTime":"639004606064745757","summary":"Summary_7","title":"Title_7","topic":"Topic_7"},{"id":9,"name":"Name_9","isbn":"ISBN_9_ae3e70d3906c4379a378ab6704e5a948","content":"Content_9","publishTime":"639004606064745764","summary":"Summary_8","title":"Title_8","topic":"Topic_8"},{"id":10,"name":"Name_10","isbn":"ISBN_10_893bd9e910314c7f986ed9b3cb17b297","content":"Content_10","publishTime":"639004606064745780","summary":"Summary_9","title":"Title_9","topic":"Topic_9"}]

 

[{"id":1,"name":"Name_1","isbn":"ISBN_1_55d6550326804224a9da483aab118485","content":"Content_1","publishTime":"639004606064743061","summary":"Summary_0","title":"Title_0","topic":"Topic_0"},{"id":2,"name":"Name_2","isbn":"ISBN_2_673636d6e4ec4cec9b916ccb5423593e","content":"Content_2","publishTime":"639004606064745652","summary":"Summary_1","title":"Title_1","topic":"Topic_1"},{"id":3,"name":"Name_3","isbn":"ISBN_3_a7c7e59eb8c142e496bfff52ef22c8cd","content":"Content_3","publishTime":"639004606064745700","summary":"Summary_2","title":"Title_2","topic":"Topic_2"},{"id":4,"name":"Name_4","isbn":"ISBN_4_6bc2c89efe4e4c6698dff0a15759ad8d","content":"Content_4","publishTime":"639004606064745713","summary":"Summary_3","title":"Title_3","topic":"Topic_3"},{"id":5,"name":"Name_5","isbn":"ISBN_5_c2447b32cf494f1b91e96616a3df8165","content":"Content_5","publishTime":"639004606064745722","summary":"Summary_4","title":"Title_4","topic":"Topic_4"},{"id":6,"name":"Name_6","isbn":"ISBN_6_efea607812584cef84a3208da4d837fe","content":"Content_6","publishTime":"639004606064745742","summary":"Summary_5","title":"Title_5","topic":"Topic_5"},{"id":7,"name":"Name_7","isbn":"ISBN_7_aff6cc7ca2df4fb4b1dfcc6dcbfcb3cf","content":"Content_7","publishTime":"639004606064745750","summary":"Summary_6","title":"Title_6","topic":"Topic_6"},{"id":8,"name":"Name_8","isbn":"ISBN_8_4d0a9bcdd2b640f79491b3388cec8e61","content":"Content_8","publishTime":"639004606064745757","summary":"Summary_7","title":"Title_7","topic":"Topic_7"},{"id":9,"name":"Name_9","isbn":"ISBN_9_ae3e70d3906c4379a378ab6704e5a948","content":"Content_9","publishTime":"639004606064745764","summary":"Summary_8","title":"Title_8","topic":"Topic_8"},{"id":10,"name":"Name_10","isbn":"ISBN_10_893bd9e910314c7f986ed9b3cb17b297","content":"Content_10","publishTime":"639004606064745780","summary":"Summary_9","title":"Title_9","topic":"Topic_9"}]

 

4.Invoke the service via Console Application

using System.Threading.Tasks;

namespace ConsoleApp39
{
    internal class Program
    {
        static readonly HttpClient client = new HttpClient();
        static async Task Main(string[] args)
        {
            string bookServicesUrl = "http://localhost:5056/api/books";
            for(int i=0;i<10;i++)
            {
                await PrintBooks(bookServicesUrl);
                Console.WriteLine();
            }
            Console.ReadLine();
        }       
        
        static async Task PrintBooks(string serverUrl)
        {
            var books = await client.GetStringAsync(serverUrl);
            Console.WriteLine(books);
        }
    }
}

 

image

 

 

image

 

posted @ 2025-12-04 23:48  FredGrit  阅读(13)  评论(0)    收藏  举报