mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-22 14:02:49 +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/delegatinghandlers
|
||||
features/raft
|
||||
features/errorcodes
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -3,7 +3,7 @@ using System;
|
||||
|
||||
namespace Ocelot.Requester
|
||||
{
|
||||
class ConnectionToDownstreamServiceError : Error
|
||||
public class ConnectionToDownstreamServiceError : Error
|
||||
{
|
||||
public ConnectionToDownstreamServiceError(Exception exception)
|
||||
: base($"Error connecting to downstream service, exception: {exception}", OcelotErrorCode.ConnectionToDownstreamServiceError)
|
||||
|
@ -5,7 +5,6 @@ namespace Ocelot.Requester
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Net.Sockets;
|
||||
|
||||
public class HttpExeptionToErrorMapper : IExceptionToErrorMapper
|
||||
{
|
||||
|
@ -1,8 +1,9 @@
|
||||
using Ocelot.Errors;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Ocelot.Responder
|
||||
namespace Ocelot.Responder
|
||||
{
|
||||
using System.Net;
|
||||
using Ocelot.Errors;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
/// Map a list OceoltErrors to a single appropriate HTTP status code
|
||||
/// </summary>
|
||||
|
@ -7,6 +7,7 @@
|
||||
using Shouldly;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
@ -38,6 +39,14 @@
|
||||
error.ShouldBeOfType<RequestCanceledError>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void should_return_ConnectionToDownstreamServiceError()
|
||||
{
|
||||
var error = _mapper.Map(new HttpRequestException());
|
||||
|
||||
error.ShouldBeOfType<ConnectionToDownstreamServiceError>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void should_return_request_canceled_for_subtype()
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user