Search Results for

      Show / Hide Table of Contents

      Intent.ApiGateway.Ocelot

      This module implements the Ocelot API Gateway in a ASP.NET Core application.

      What is Ocelot?

      Ocelot is aimed at people using .NET running a microservices / service-oriented architecture that need a unified point of entry into their system. -Website

      Modeling API Gateway Routes

      Ocelot API Gateway modeling

      The following steps are performed inside the Services designer:

      • First you need to add a reference to a Services package containing all the downstream service endpoints.
        • Right-click on the Service package and select Add Package Reference.
        • Locate the Service package from another Intent Architect application that will act as the downstream service.
        • Click on DONE.
      • Add downstream endpoints:
        • Right-click on the diagram background and select Add to diagram.
        • Select the downstream endpoints you would like to connect to. They would be in the form of Command/Query/Service endpoints.
        • Click on DONE.
      • Add Api Gateway routes:
        • Right-click on the diagram background and add a new Api Gateway Route element.
        • Right-click on it and select New Route Association.
        • Select a downstream endpoint to connect to and click to snap it into place.

      Inspect the ocelot.json file

      The routes will be generated inside the ocelot.json file:

      {
        "Routes": [
        {
            "UpstreamPathTemplate": "/api/clients",
            "UpstreamHttpMethod": [
                "Post"
            ],
            "DownstreamPathTemplate": "/api/clients",
            "DownstreamHttpMethod": "POST",
            "DownstreamHostAndPorts": [
              {
                 "Host": "{Clients.Host.Name}"
              }
            ]
        },
        // ...
      

      You will see that each route entry has a Host value corresponding to the package name being imported. This is a substitution of the actual host name and port number.

      Configure those services inside the appsettings.json file:

      {
        //...
        "Ocelot": {
          "Hosts": {
            "Clients.Host.Name": "https://localhost:44300"
          }
        }
      }
      
      • Edit this page
      ☀
      ☾
      In this article
      Back to top Copyright © 2017-, Intent Architect Holdings Ltd