您现在的位置是:主页 > news > 旅游网站开发背景/百度ai人工智能
旅游网站开发背景/百度ai人工智能
admin2025/6/25 17:21:35【news】
简介旅游网站开发背景,百度ai人工智能,wordpress中英文插件,wordpress做文学网RESTful应用程序的设计和实现可能带来许多挑战: 支持CRUD操作。 遵循标准的REST端点,可从社区支持和丰富的工具中受益。 提供从服务器到浏览器和移动设备的端到端解决方案。 排序,过滤和分页。 请求并(从原子上)修…
RESTful应用程序的设计和实现可能带来许多挑战:
- 支持CRUD操作。
- 遵循标准的REST端点,可从社区支持和丰富的工具中受益。
- 提供从服务器到浏览器和移动设备的端到端解决方案。
- 排序,过滤和分页。
- 请求并(从原子上)修改复杂的对象图。
- 将资源与HATEOAS链接起来,并用元数据丰富数据。
- 通过允许在单个请求中获取对象图并仅使用稀疏字段集获取那些对象的必要部分,从而实现移动友好性。
- 用于文档和(UI)自动化的元模型。
- 使用用户界面浏览API。
- 自定义和默认异常类型的异常映射。
- 与Spring和JEE之类的Java框架集成。
Crnk是一个新的开源项目 ,旨在为这些挑战和更多挑战提供解决方案,并使开发人员专注于重要的事情:他们的应用程序。 Crnk建立在JSON API标准的基础上,用于基于资源的REST API。 JSON API定义了REST端点的外观。 其中包括CRUD,排序,过滤和分页等基本功能。 而且还有更高级的模式,例如通过单个请求查询资源和(可能是嵌套的)相关资源。 在此基础上,Crnk旨在为RESTful应用程序开发提供端到端解决方案,并将其很好地集成到Java生态系统中。
还请参见: Spring Boot教程:REST服务和微服务
与框架无关的模块化
Crnk的核心很小,并且与大多数Java框架集成,例如Spring,Servlet API,CDI,Dropwizard和JAX-RS。 扩展了Crnk功能集的模块越来越丰富。 JPA模块将实体公开为REST端点,并具有JSON API附带的所有优点。 高级自定义选项可以将这些实体映射到DTO或在表,行或列级别保护实体。 相反,Brave模块带来了对使用Zipkin进行跟踪的支持。 其他模块可以在Crnk网页上找到。 该文档进一步显示了如何实现定制模块。
例
JSON API规范利用了资源和存储库。 用Crnk编写的资源看起来很简单:
@JsonApiResource(type = "schedules")
public class Schedule {
@JsonApiId
private Long id;
private String name;
…
}
对于存储库:
@ApplicationScoped
public class ScheduleRepositoryImpl extends ResourceRepositoryBase<Schedule, Long>{
private Map<Long, Schedule> schedules = new HashMap<>();
@Override
public ResourceList<Schedule> findAll(QuerySpec querySpec) {
return querySpec.apply(schedules.values());
}
@Override
public <S extends Schedule> S save(S entity) {
schedules.put(entity.getId(), entity);
return null;
}
@Override
public void delete(Long id) {
schedules.remove(id);
}
}
该示例利用了内存中的排序,过滤和分页。 它支持请求URL,例如:
- http://127.0.0.1:8080/schedule
- http://127.0.0.1:8080/schedule
- http://127.0.0.1:8080/schedule/myScheduleId
- http://127.0.0.1:8080/schedule?filter[name][GT]=scheduleName1&page[limit]=3&sort=-name
更高级的用例可能会将QuerySpec参数映射到使用中的数据存储的本机查询。
类型安全且可测试
Crnk附带了对客户端应用程序的支持。 可从服务器和客户端访问API的许多部分。 有一个Crnk客户端,它从存储库接口创建类型安全的存根。 依次可被Java和Android设备使用。
测试受益于JSON API标准化REST层的事实。 因此,使用诸如REST保证的工具进行低级REST测试的需求减少了。 相反,应用程序可以专注于其应用程序逻辑,并且测试看起来像:
@Override
public void test(){
CrnkClient client = new CrnkClient(http://...);
ResourceRepositoryV2<Task> repository = client.getRepositoryForType(Task.class);
ResourceList<Task> tasks = repository.findAll(new QuerySpec(Task.class));
Assert.assertEquals(…);
}
Gradle插件支持Typescript接口的生成。 它为Web和混合移动应用程序带来了类型安全的开发。 生成器当前通过使用带有ngrx的redux模式来针对Angular应用程序。 越来越受欢迎的组合。 JSON API文档的规范化结构非常自然地适用于此,可以轻松放入redux存储中。
还请参见:微服务和DevOps加速了API优先发展
元模型
Crnk带有类似于Java Reflections API的丰富元模型。 它将Crnk的内部工作方式作为JSON API存储库进行访问。 例如,它允许查询:
- 可用存储库
- 资源属性
- 类型信息
- 无效性
该API可以用于例如文档和UI自动化目的。
结论
JSON API规范为Crnk提供了坚实的基础。 与许多Java框架的集成补充了JSON API,并促进了Java应用程序的采用。 但是还有更多要说的。
有关功能,文档和路线图的信息可在此处找到。
翻译自: https://jaxenter.com/crnk-1-0-dev-restful-applications-135642.html