B-Arts DocumentationIndice generale

BWebApiModel - esempi

Endpoint GET protetto

[HttpGet]
[Route("GetCliente")]
[BApiFilter(BApiFilterBase.eCheckType.All)]
public IActionResult GetCliente(int id)
{
  try
  {
    BCliente cliente = new BCliente(id, Cnn!);
    if (cliente.IsNothing)
      return BadRequestMessage("Cliente non trovato", false);

    return OkMessage("OK", cliente);
  }
  catch (Exception ex)
  {
    WriteLog("Errore durante il caricamento del cliente", BEnumerations.eSeverity.ERROR, ex);
    return ErrorMessage<bool>("Errore durante l'elaborazione della richiesta");
  }
}

Endpoint POST protetto

[HttpPost]
[Route("SaveCliente")]
[BApiFilter(BApiFilterBase.eCheckType.All)]
public IActionResult SaveCliente([FromBody] BCliente cliente)
{
  try
  {
    if (cliente == null)
      return BadRequestMessage("Dati cliente non presenti", false);

    cliente.ChangeConnection(Cnn);
    bool salvato = cliente.Update();
    if (!salvato)
      return BadRequestMessage("Cliente non salvato", false);

    return OkMessage("Cliente salvato", true);
  }
  catch (Exception ex)
  {
    WriteLog("Errore durante il salvataggio del cliente", BEnumerations.eSeverity.ERROR, ex);
    return ErrorMessage<bool>("Errore durante l'elaborazione della richiesta");
  }
}

Chiamata HTTP

@HostAddress = https://localhost:7183
@SecureKey = valore-calcolato-dal-client

GET {{HostAddress}}/GetCliente?id=125
B-SECURE-KEY: {{SecureKey}}
Accept: application/json

Il nome definitivo della route dipende dagli attributi applicati al controller e all'azione.

Personalizzare i controlli del filtro

Nella parte BPartialClasses/BApiFilterBase.cs, aggiungere i controlli applicativi previsti dall'hook del modello senza modificare BBaseClasses/BApiFilterBase.cs.