mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-22 06:22:50 +08:00
http error code tests and docs
This commit is contained in:
parent
3dfcff822b
commit
cdbd8e85d3
13
docs/features/errorcodes.rst
Normal file
13
docs/features/errorcodes.rst
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Http Error Status Codes
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Ocelot will return HTTP status error codes based on internal logic in certain siturations:
|
||||||
|
- 401 if the authentication middleware runs and the user is not authenticated.
|
||||||
|
- 403 if the authorisation middleware runs and the user is unauthenticated, claim value not authroised, scope not authorised, user doesnt have required claim or cannot find claim.
|
||||||
|
- 503 if the downstream request times out.
|
||||||
|
- 499 if the request is cancelled by the client.
|
||||||
|
- 404 if unable to find a downstream route.
|
||||||
|
- 502 if unable to connect to downstream service.
|
||||||
|
- 500 if unable to complete the HTTP request downstream and the exception is not OperationCanceledException or HttpRequestException.
|
||||||
|
- 404 if Ocelot is unable to map an internal error code to a HTTP status code.
|
||||||
|
|
@ -42,6 +42,7 @@ Thanks for taking a look at the Ocelot documentation. Please use the left hand n
|
|||||||
features/loadbalancer
|
features/loadbalancer
|
||||||
features/delegatinghandlers
|
features/delegatinghandlers
|
||||||
features/raft
|
features/raft
|
||||||
|
features/errorcodes
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
@ -3,7 +3,7 @@ using System;
|
|||||||
|
|
||||||
namespace Ocelot.Requester
|
namespace Ocelot.Requester
|
||||||
{
|
{
|
||||||
class ConnectionToDownstreamServiceError : Error
|
public class ConnectionToDownstreamServiceError : Error
|
||||||
{
|
{
|
||||||
public ConnectionToDownstreamServiceError(Exception exception)
|
public ConnectionToDownstreamServiceError(Exception exception)
|
||||||
: base($"Error connecting to downstream service, exception: {exception}", OcelotErrorCode.ConnectionToDownstreamServiceError)
|
: base($"Error connecting to downstream service, exception: {exception}", OcelotErrorCode.ConnectionToDownstreamServiceError)
|
||||||
|
@ -5,7 +5,6 @@ namespace Ocelot.Requester
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Net.Sockets;
|
|
||||||
|
|
||||||
public class HttpExeptionToErrorMapper : IExceptionToErrorMapper
|
public class HttpExeptionToErrorMapper : IExceptionToErrorMapper
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
using Ocelot.Errors;
|
namespace Ocelot.Responder
|
||||||
|
{
|
||||||
|
using System.Net;
|
||||||
|
using Ocelot.Errors;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Ocelot.Responder
|
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Map a list OceoltErrors to a single appropriate HTTP status code
|
/// Map a list OceoltErrors to a single appropriate HTTP status code
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
using Shouldly;
|
using Shouldly;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
@ -38,6 +39,14 @@
|
|||||||
error.ShouldBeOfType<RequestCanceledError>();
|
error.ShouldBeOfType<RequestCanceledError>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void should_return_ConnectionToDownstreamServiceError()
|
||||||
|
{
|
||||||
|
var error = _mapper.Map(new HttpRequestException());
|
||||||
|
|
||||||
|
error.ShouldBeOfType<ConnectionToDownstreamServiceError>();
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void should_return_request_canceled_for_subtype()
|
public void should_return_request_canceled_for_subtype()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user