Я реализовал как:
public interface Constants{
Integer PAGE_SIZE = 20;
}
-
public class JspConstants extends HashMap<String, String> {
public JspConstants() {
Class c = Constants.class;
Field[] fields = c.getDeclaredFields();
for(Field field : fields) {
int modifier = field.getModifiers();
if(Modifier.isPublic(modifier) && Modifier.isStatic(modifier) && Modifier.isFinal(modifier)) {
try {
Object o = field.get(null);
put(field.getName(), o != null ? o.toString() : null);
} catch(IllegalAccessException ignored) {
}
}
}
}
@Override
public String get(Object key) {
String result = super.get(key);
if(StringUtils.isEmpty(result)) {
throw new IllegalArgumentException("Check key! The key is wrong, no such constant!");
}
return result;
}
}
Следующий шаг поместить экземпляр этого класса в servlerContext
public class ApplicationInitializer implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
sce.getServletContext().setAttribute("Constants", new JspConstants());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
добавить слушателя в web.xml
<listener>
<listener-class>com.example.ApplicationInitializer</listener-class>
</listener>
Доступ к в jsp
${Constants.PAGE_SIZE}
В app/Http/Kernel.php
Laravel имеет ограничение по умолчанию для всех маршрутов API.
protected $middlewareGroups = [
...
'api' => [
'throttle:60,1',
],
];
Комментировать или увеличить его.
Предполагая, что вы используете маршруты API, вы можете изменить дроссель в app / Http / Kernel.php или полностью его снять. Если вам нужно ограничить другие маршруты, вы можете зарегистрировать промежуточное программное обеспечение для них отдельно.
(пример ниже: газ - 60 попыток, затем блокировка на 1 минуту)
'api' => [
'throttle:60,1',
'bindings',
],
Если вы хотите отключить только автоматические тесты, вы можете использовать черту WithoutMiddleware
в своих тестах.
use Illuminate\Foundation\Testing\WithoutMiddleware;
class YourTest extends TestCase {
use WithoutMiddleware;
...
В противном случае просто удалите строку 'throttle:60,1',
из файла ядра (app/Http/Kernel.php
), и ваша проблема будет решена.
В Laravel 5.7
Ограничение динамической скорости Вы можете указать максимум динамического запроса на основе атрибута аутентифицированной модели пользователя. Например, если ваша модель пользователя содержит атрибут rate_limit, вы можете передать имя атрибута промежуточному программному обеспечению дросселя, чтобы оно использовалось для расчета максимального количества запросов:
Route::middleware('auth:api', 'throttle:rate_limit,1')->group(function () {
Route::get('/user', function () {
//
});
});
На самом деле вы можете отключить только определенное промежуточное ПО в тестах.
use Illuminate\Routing\Middleware\ThrottleRequests;
class YourTest extends TestCase
{
protected function setUp()
{
parent::setUp();
$this->withoutMiddleware(
ThrottleRequests::class
);
}
...
}