{"id":2946,"date":"2026-01-27T08:42:17","date_gmt":"2026-01-27T08:42:17","guid":{"rendered":"https:\/\/codeinsightacademy.com\/blog\/?p=2946"},"modified":"2026-01-27T08:42:50","modified_gmt":"2026-01-27T08:42:50","slug":"dotnet","status":"publish","type":"post","link":"https:\/\/codeinsightacademy.com\/blog\/dotnet\/dotnet\/","title":{"rendered":"DotNet"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>\/\/ ===============================\n\/\/ HOW TO RUN THIS PROJECT (VS CODE)\n\/\/ ===============================\n\/\/\n\/\/ 1. Install .NET SDK (6 or above)\n\/\/    Check using: dotnet --version\n\/\/\n\/\/ 2. Open project folder in VS Code\n\/\/    code .\n\/\/\n\/\/ 3. Restore packages (one time)\n\/\/    dotnet restore\n\/\/\n\/\/ 4. Run application\n\/\/    dotnet watch run\n\/\/\n\/\/ 5. Open browser and test APIs\n\/\/    http:\/\/localhost:5293\/\n\/\/    http:\/\/localhost:5293\/todos\n\/\/\n\/\/ ===============================\n\n\n\/\/ Import MySQL client library\nusing MySql.Data.MySqlClient;\n\n\/\/ Import Dapper (shortcut for DB queries)\nusing Dapper;\n\nvar builder = WebApplication.CreateBuilder(args);\n\n\/\/ ===============================\n\/\/ SERVICES (Framework features)\n\/\/ ===============================\nbuilder.Services.AddControllers();\nbuilder.Services.AddEndpointsApiExplorer();\nbuilder.Services.AddSwaggerGen();\n\nvar app = builder.Build();\n\n\/\/ ===============================\n\/\/ MIDDLEWARE (Request pipeline)\n\/\/ ===============================\nif (app.Environment.IsDevelopment())\n{\n    app.UseSwagger();\n    app.UseSwaggerUI();\n}\n\napp.UseHttpsRedirection();\napp.UseAuthorization();\napp.MapControllers();\n\n\/\/ ===============================\n\/\/ BASIC TEST APIs\n\/\/ ===============================\n\n\/\/ Simple GET API\napp.MapGet(\"\/\", () =&gt; \"Hello Shailesh \ud83d\udc4b C# Web Service is running!\");\n\n\/\/ Query parameter example\n\/\/ URL: \/square?num=5\napp.MapGet(\"\/square\", (int num) =&gt; new\n{\n    number = num,\n    square = num * num\n});\n\n\/\/ Route parameter example\n\/\/ URL: \/cube\/3\napp.MapGet(\"\/cube\/{num:int}\", (int num) =&gt; new\n{\n    number = num,\n    cube = num * num * num\n});\n\n\/\/ JSON body example\n\/\/ POST \/sum\n\/\/ Body: { \"a\": 5, \"b\": 6 }\napp.MapPost(\"\/sum\", (SumRequest req) =&gt;\n{\n    int result = req.a + req.b;\n    return $\"{req.a} + {req.b} = {result}\";\n});\n\n\/\/ ===============================\n\/\/ DATABASE CONFIGURATION\n\/\/ ===============================\n\n\/\/ MySQL connection string\n\/\/ NOTE: In real projects, keep this in appsettings.json\nstring connStr = \"Server=ciacloud.in;Database=tpdb;Uid=tpuser;Password=%TGBbgt5;\";\n\n\/\/ ===============================\n\/\/ DATABASE API (SELECT ALL)\n\/\/ ===============================\n\/\/\n\/\/ Equivalent Node.js code:\n\/\/ db.query(\"SELECT * FROM todo\", (err, rows) =&gt; res.json(rows));\n\/\/\n\/\/ Dapper automatically converts DB rows to JSON-friendly objects\n\/\/\napp.MapGet(\"\/todos\", () =&gt;\n{\n    using var conn = new MySqlConnection(connStr);\n    return conn.Query(\"SELECT * FROM todo\");\n});\n\n\/\/ ===============================\n\/\/ START APPLICATION\n\/\/ ===============================\napp.Run();\n\n\/\/ ===============================\n\/\/ MODELS\n\/\/ ===============================\n\n\/\/ Used for POST \/sum JSON body\nrecord SumRequest(int a, int b);\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[41],"tags":[],"_links":{"self":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2946"}],"collection":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/comments?post=2946"}],"version-history":[{"count":2,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2946\/revisions"}],"predecessor-version":[{"id":2948,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2946\/revisions\/2948"}],"wp:attachment":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/media?parent=2946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/categories?post=2946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/tags?post=2946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}