KEMBAR78
Fast is Best. Using .NET MinimalAPIs | PPTX




 







var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.MapControllers();
app.Run();
[ApiController]
[Route("[controller]")]
public class HelloWorldController : ControllerBase
{
[HttpGet(Name = "/")]
public string Get()
{
return "Hello World!";
}
}
const express = require('express');
const app = express();
app.get(‘/HelloWorld', (req, res) => res.send('Hello World!'));
app.listen(3000);
var app = WebApplication.Create(args);
app.MapGet("/HelloWorld", () => "Hello World!");
app.Run();
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.MapControllers();
app.Run();
[ApiController]
[Route("[controller]")]
public class HelloWorldController : ControllerBase
{
[HttpGet(Name = "/")]
public string Get()
{
return "Hello World!";
}
}


















Principal elements of a REST approach



https://martinfowler.com/articles/richardsonMaturityModel.html
// Response
{ “tickets" : [
{
"sku": “TDC-REG-75-Z1",
"kind": "Regular", // "Reduced"
"transfersAllowed": true, // false
"validInZones": ["Zone1"], // ["Zone1", "Zone2"]
"validityPeriodMinutes": 75,
"priceInLocalCurrency": 4.40
}, …]
}
Endpoint: GET /tickets
// Request
{ “orderItems" : [{
"sku": "TDC-REG-75-Z1",
“quantity": 2
}, …]
}
Endpoint: POST /tickets/checkout
Endpoint: POST /tickets/{TRANSPORT_ID}/checkout
// Response
{ “tickets" : [{
"sku": "TDC-REG-75-Z1",
“issuedDateTime": …,
“untilDateTime": …,
“qrCode": “….“
}, …]
}
Endpoint: POST /validator/validate-ticket
// Request
{
"validatorTransportId": 1234,
"validatorTime": "10:10",
"validatorZone": "Zone1",
“qrCodeData": "..."
}
// Response
// HTTP Status Code 200 + Payload
// HTTP Status Code 400 + Payload
Fast is Best. Using .NET MinimalAPIs
Fast is Best. Using .NET MinimalAPIs

Fast is Best. Using .NET MinimalAPIs

  • 2.
  • 3.
  • 5.
    var builder =WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var app = builder.Build(); app.MapControllers(); app.Run(); [ApiController] [Route("[controller]")] public class HelloWorldController : ControllerBase { [HttpGet(Name = "/")] public string Get() { return "Hello World!"; } }
  • 6.
    const express =require('express'); const app = express(); app.get(‘/HelloWorld', (req, res) => res.send('Hello World!')); app.listen(3000);
  • 8.
    var app =WebApplication.Create(args); app.MapGet("/HelloWorld", () => "Hello World!"); app.Run(); var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var app = builder.Build(); app.MapControllers(); app.Run(); [ApiController] [Route("[controller]")] public class HelloWorldController : ControllerBase { [HttpGet(Name = "/")] public string Get() { return "Hello World!"; } }
  • 9.
  • 11.
  • 12.
  • 13.
  • 14.
    Principal elements ofa REST approach    https://martinfowler.com/articles/richardsonMaturityModel.html
  • 15.
    // Response { “tickets": [ { "sku": “TDC-REG-75-Z1", "kind": "Regular", // "Reduced" "transfersAllowed": true, // false "validInZones": ["Zone1"], // ["Zone1", "Zone2"] "validityPeriodMinutes": 75, "priceInLocalCurrency": 4.40 }, …] } Endpoint: GET /tickets
  • 16.
    // Request { “orderItems": [{ "sku": "TDC-REG-75-Z1", “quantity": 2 }, …] } Endpoint: POST /tickets/checkout Endpoint: POST /tickets/{TRANSPORT_ID}/checkout // Response { “tickets" : [{ "sku": "TDC-REG-75-Z1", “issuedDateTime": …, “untilDateTime": …, “qrCode": “….“ }, …] }
  • 17.
    Endpoint: POST /validator/validate-ticket //Request { "validatorTransportId": 1234, "validatorTime": "10:10", "validatorZone": "Zone1", “qrCodeData": "..." } // Response // HTTP Status Code 200 + Payload // HTTP Status Code 400 + Payload