使嵌入到资源中的route_param成为字符串

时间:2018-08-02 16:21:55

标签: ruby grape grape-api

我正在尝试将路由参数作为字符串嵌入到资源中。

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;

@ExtendWith(MockitoExtension.class)
public class FooTest {

    @Mock
    Bar mockBar;
    Foo foo;

    @BeforeEach
    public void beforEach() {
        foo = new Foo(mockBar); 
    }

    @Test
    public void doThis() {
        Mockito.when(mockBar.doThat())
               .thenReturn(Mockito.anyInt());
        // ...
    }

}

我能想到的一种方法是将资源分成route_param块并使其成为字符串,但这会引入很多嵌套,这将破坏资源具有嵌入route_param的目的,从而阻止嵌套。

class Example < Grape::API
  resource 'a/:param/b' do
    # code
  end
end

我可以想到的另一种方法是通过在param块中显式定义,这可能会重复很多代码。

class Example < Grape::API
  resource 'a' do
    route_param :param, type: String do
      resource 'b' do
        # code
      end
    end
  end
end

有人知道其他方式吗?谢谢!

0 个答案:

没有答案