问:ReactJS的后端

时间:2018-09-19 05:47:52

标签: php reactjs rest asp.net-core-2.0

首先,我希望我可以提出这样一个广泛的问题(第一次这样做)。

好,所以我对React还是很陌生,我需要一个项目来进行工作,所以我想我会重新创建我的投资组合(当前在laravel中创建)作为react&react本地应用。

我的问题是:

  1. Rest Api NETCORE后端是否会成为做出反应的好选择?
  2. 我在ASPNET MVC中的经验要多于Core,我应该坚持吗? 现在使用MVC API(我已经开始创建NETCORE Api 出于学习目的)?
  3. 这样的PHP框架(例如CodeIgniter)会更好吗? 工作?

我的主要问题是,这是否是一种好方法?我想要一个基本的后端(身份验证,新闻发布,投资组合项目等),然后继续在我的react应用程序上构建。

我当时想,通过创建Rest API后端,在尝试为PC,Android或其他任何版本(相同的后端,不同的客户端)创建React应用时,可以为我省去很多麻烦。

PS:我将在Azure的免费网站上托管我的API(如果其ASPNET或PHP共享托管),这就是我离开laravel的原因(因此laravel是不可以。

P.S2 :Firebase或其他云(Azure除外)对我来说是行不通的。我可以访问很多资源,我想使用它们,而不要使用免费的服务,例如firebase或诸如此类。

2 个答案:

答案 0 :(得分:1)

在这里只给我2便士,因为这实际上是基于意见的!

就后端而言,这取决于您,无论您觉得更舒适-但是我都会敏锐地关注您构建的后端系统的体系结构。

我的选择是创建一个基于微服务的体系结构,在该体系结构中创建仅在其域内处理的简单原子服务。例如,您可以创建“公共服务”-可以被其他服务(事件,加密,文档等)用作依赖关系的服务,然后创建处理您应用程序方面的原子服务,例如用户服务,支付服务,产品服务,购物篮服务等。

这个想法很简单,创建简单的数据驱动的CRUD服务,这些服务是模块化的,原子的和可重用的。我发现学习新技术很棒,但是理解和学习良好的编程体系结构更有意义。您可以对数据进行结构化,使其对您而言最有效。

一旦构建了服务,就可以使用Swagger UI之类的服务来自动化文档并为其创建测试套件。如果您还没有使用Swagger,我会推荐它。

对每个服务进行测试,并贯穿软件开发的整个生命周期。这对您的投资组合确实意义重大。

这里有一些与在ASP.NET Core中构建微服务有关的文章

https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/data-driven-crud-microservice

大摇大摆

https://swagger.io/

要注意的是,我没有使用ASP或任何其他Microsoft堆栈进行开发-但原理是相同的

更新

构建整体应用程序的问题在于,随着应用程序的增长,代码库会变得越来越复杂和庞大。 Micorservices的一些优点是:

  • 可扩展性
  • 故障隔离
  • 消除了对单一技术堆栈的长期承诺
  • 使开发人员更容易理解(和记录)

我的设置类型是使用Spring Boot(Java)和Eureka Server-但您已进入MS Stack,但是我上面提供的链接显示了如何使用Net Core创建基本的CRUD微服务。我愿意尝试一下,看看进展如何,然后您可以转到CI / CD for Azure!

仅通过简单的CRUD API进行操作,就可以引入具有事件驱动的更新(服务器到客户端)的WS连接,而不是请求新数据。

我曾经与之合作的一位建筑师(一个天才)告诉我,永远不要过分依赖“框架”-当他们做得很好时,他们很酷,但是出色的应用程序应该可以灵活地进行更改,所以我不会过分依赖“框架”,但这只是他的意见。

答案 1 :(得分:1)

Try API Platform - dockerized, but deployable to php hosting (based on Symfony), generates react-admin based admin and optional web/mobile clients (IMHO the weakest parts of this project), openAPI (swagger) docs, easily usable with graphQL ... just try.

Building portfolio with Laravel isn't a good idea. Use Gatsby - you can use graphql (WordPress, contentfull) as a source, generate static site.