Spring Cloud OpenFeign: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Line 96: Line 96:
| valign="top" |
| valign="top" |
* [https://docs.spring.io/spring-cloud-openfeign/docs/3.1.3/reference/html/appendix.html OpenFeign » 3.1 » Common application properties]
* [https://docs.spring.io/spring-cloud-openfeign/docs/3.1.3/reference/html/appendix.html OpenFeign » 3.1 » Common application properties]
* [https://stackoverflow.com/questions/40262132/ OpenFeign » Add a Request Interceptor]
* [https://docs.spring.io/spring-cloud-openfeign/docs/3.1.3/reference/html/index.html#spring-cloud-feign-overriding-defaults OpenFeign » 3.1 » Overriding Feign Defaults]
* [https://cloud.spring.io/spring-cloud-openfeign/2.1.x/multi/multi_spring-cloud-feign.html OpenFeign » 2.1 » Multi Cloud Config]
* [https://cloud.spring.io/spring-cloud-openfeign/2.1.x/single/spring-cloud-openfeign.html#spring-cloud-feign-overriding-defaults OpenFeign » 2.1 » Overriding Feign Defaults]
* [https://medium.com/javarevisited/simple-implementation-of-spring-cloud-openfeign-7f022630d01d OpenFeign » Simple Implementation]
* [https://medium.com/javarevisited/simple-implementation-of-spring-cloud-openfeign-7f022630d01d OpenFeign » Simple Implementation]
* [https://www.javacodemonk.com/feign-requestinterceptor-in-spring-boot-cbe5d967 OpenFeign » Request Interceptor]
* [https://www.javacodemonk.com/feign-requestinterceptor-in-spring-boot-cbe5d967 OpenFeign » Request Interceptor]
Line 107: Line 107:


| valign="top" |
| valign="top" |
* [https://stackoverflow.com/questions/40262132/ OpenFeign » Add a Request Interceptor]


| valign="top" |
| valign="top" |

Revision as of 01:09, 13 February 2024

<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