[Из песочницы] Переписываем домашний проект на микросервисы (Java, Spring Boot, Gradle)

Комментарии (6)

  • 5 июля 2017 в 15:17

    +2

    Зачем использовать для микросервисов то, что для них не очень подходит?

    • 5 июля 2017 в 16:08

      0

      А что для них не подходит в данном случае?
      • 5 июля 2017 в 16:58

        0

        Spring boot уже научился работать без встроенного tomcat? Если нет, то неподходит tomcat, так как он из старого мира монолитных приложений и тащит много лишнего.

        • 5 июля 2017 в 17:07

          0

          В теории Spring Boot можно использовать без встроенного tomcat, но на практике лично я не пробовал.
          Но в целом, Spring Boot вроде как очень широко используется для микросервисов.
          • 5 июля 2017 в 17:09

            0

            Если судить по статьям, вроде как предлагают использовать другие фрейморвки со встроенными http серверами.


            Хотя, может я ошибаюсь, я давно не использовать Java и не знаю, как там сейчас дела (

  • 5 июля 2017 в 16:08

    0

    Удивило, что клиент очень напомнил мне мой, недавно реализованный на C#
    ApiClient
    public class ApiClient
    {
    	protected readonly ApiContext _context;
    	protected readonly string _apiPrefix;
    
    	public ApiClient(ApiContext context, string apiPrefix)
    	{
    		_context = context;
    		_apiPrefix = apiPrefix;
    	}
    
    	protected Task GetAsync(string method, string param = null)
    	{
    		return RestRequest.GetAsync(
    			RequestUrl( method, param ) + $"?accessToken={GetAccessToken()}"
    		);
    	}
    
    	protected Task PutAsync(string method, string param = null)
    	{
    		return RestRequest.PutAsync(
    			RequestUrl( method, param ),
    			$"accessToken={GetAccessToken()}"
    		);
    	}
    
    	protected Task PostAsync(string method, Dictionary fields)
    	{
    		return RestRequest.PostAsync(
    			RequestUrl( method ),
    			fields
    		);
    	}
    
    	protected Task DeleteAsync(string method, string param = null)
    	{
    		return RestRequest.DeleteAsync(
    			RequestUrl( method, param ) + $"?accessToken={GetAccessToken()}"
    		);
    	}
    
    	protected string RequestUrl(string method, string param = null)
    	{
    		var url = $"{_context.apiServerUrl}{_apiPrefix}";
    
    		if (!string.IsNullOrEmpty( method ))
    			url += "/" + method;
    
    		if (!string.IsNullOrEmpty( param ))
    			url += "/" + param;
    
    		return url;
    	}
    
    	protected string GetAccessToken()
    	{
    		if (!_context.isAuthorized)
    			throw new Exception("Context ins't authorized");
    
    		return _context.accessToken;
    	}
    }
    

© Habrahabr.ru