Coder Social home page Coder Social logo

bliblidotcom / blibli-backend-framework Goto Github PK

View Code? Open in Web Editor NEW
74.0 7.0 12.0 543 KB

Blibli.com Backend Framework

Home Page: https://www.blibli.com/

License: Apache License 2.0

Java 99.93% Shell 0.07%
blibli backend spring-framework spring-boot java reactor kafka swagger

blibli-backend-framework's Introduction

Blibli Backend Framework

Blibli Backend Framework is various spring boot 2 libraries for Blibli.com backend projects.

Setup

To use blibli backend framework, we need to setup our pom.xml

<!-- Set parent project -->
<parent>
    <groupId>com.blibli.oss</groupId>
    <artifactId>blibli-backend-framework</artifactId>
    <version>...</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<!-- Set blibli framework version -->
<properties>
    <blibli-framework.version>...</blibli-framework.version>
</properties>

<!-- add blibli bintray repository --> 
<repositories>
    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>bintray-bliblidotcom-maven</id>
      <name>bintray</name>
      <url>https://dl.bintray.com/bliblidotcom/maven</url>
    </repository>
</repositories>

Example Project

If you need example project, you can see this repository :

https://github.com/bliblidotcom/blibli-backend-framework-example

List of Libraries

blibli-backend-framework's People

Contributors

khannedy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

blibli-backend-framework's Issues

ApiClient does not read spring default CodecProperties

What
I set spring.codec.max-in-memory-size=100MB

Expected
ApiClient data buffer will increase

Actual
ApiClient data buffer still set to default 256K

How to fix
In ApiClientMethodInterceptor, make it read the CodecProperties too, see org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration.DefaultCodecsConfiguration.defaultCodecCustomizer

Workaround
Create ApiClientCodecCustomizer and set defaultCodec's maxInMemorySize

ApiClient doesn't encode URI with proper URI EncodingMethod

For example I have apiClientX with following path:
/get?query[id][is]=xyz and abc

xyz and abc is URI values, passed through api client method interface.

And I set DefaultUriBuilderFactory.EncodingMode=VALUES_ONLY.

Then send the request...

Expectation
/get?query[id][is]=xyz+and+abc
(url template is NOT encoded, url values is encoded)

Actual
/get?query[id][is]=xyz and abc
(url template is NOT encoded, url values is NOT encoded)

Current workaround
Encode the xyz and abc manually with java URI encoder method before passing it to apiClientX.

Will fill up later for sample code.

ApiClient breaks when using spring-boot-devtools

When spring-boot-devtools is included in classpath, project startup fail because in ApiClientMethodInterceptor.prepareFallback() method, the XClientFallback bean is not found/has not been initiated yet.

@RequestParam with no name / value is not supported

If you use the following:
@RequestParam String requestParamOne, it will not work because the name of the param is taken by the name or value of the annotation
String name = StringUtils.isEmpty(annotation.name()) ? annotation.value() : annotation.name();
Hence, the need for declaring it as follows:
@RequestParam("requestParamOne") String requestParamOne
But ideally, it should be taken as the default if empty, from the Parameter's name field ( parameter.getName() )

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.