Spring Cloud OpenFeign

From Chorke Wiki
Jump to navigation Jump to search
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
       </dependency>
       <!--
       others dependencies
       -->
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <dependency>
        <groupId>io.github.openfeign</groupId>
        <artifactId>feign-okhttp</artifactId>
    </dependency>
    <dependency>
        <groupId>io.github.openfeign</groupId>
        <artifactId>feign-httpclient</artifactId>
    </dependency>
</dependencies>

timeout 60 telnet localhost 1983 \
;printf '\n'
nc -w 60 localhost 1983 \
;printf '\n'

Mocking API

mkdir -p ~/Documents/flask-playground/MockApi
python3 -m venv ~/.venv/flask --prompt="Flask"
source ~/.venv/flask/bin/activate
pip install Flask
           rm rf ~/Documents/flask-playground/MockApi/*.py
cat << EOF | tee ~/Documents/flask-playground/MockApi/__main__.py >/dev/null
from flask import Flask, request, json, jsonify
import time

app = Flask(__name__)
app.json.sort_keys = False

companies = [{'id': 1, 'name': 'Chorke', 'concern': False}, {'id': 2, 'name': 'Academia', 'concern': True}]

@app.route("/api/v1/companies")
def data():
    time.sleep(5)
    lang_code = request.args.get('lang_code')
    print(f'lang_code: {lang_code}!')
#   return json.dumps(companies)
    return jsonify(companies)

if __name__ == "__main__":
    app.run(host='127.0.0.1', port=1983, debug= True)
EOF
          python ~/Documents/flask-playground/MockApi
time curl -k http://127.0.0.1:1983/api/v1/companies?lang_code=EN
time curl -i http://127.0.0.1:1983/api/v1/companies?lang_code=EN
      time http GET 127.0.0.1:1983/api/v1/companies?lang_code=EN --pretty=colors

References