Пошаговое руководство на высоком уровне Connecting React and Go
Это должно быть очень простое пошаговое руководство по обслуживанию приложения React с сервера Go с помощью Gin. В пошаговом руководстве предполагается, что у вас уже есть настройка среды Go и у вас есть базовые представления об использовании приложения create react для создания проектов реагирования.
Go налагает определенную структуру папок на проекты, чтобы вы могли легко создавать пакеты и совместно использовать их в проектах. Довольно крутая идея. Вы можете запустить следующее, чтобы увидеть, где находится ваш GOPATH
go env GOPATH
Вы должны увидеть что-то вроде этого:
/Users/blakedanson/go
Просто для большей ясности вы должны создать свой проект, вложенный в ваш каталог go. Он должен выглядеть примерно так, но с вашими именами пользователей:
/Users/blakedanson/go/src/github.com/synapticsynergy/multifamilyAnalysis
Создать новый проект
Сначала мы собираемся создать очень простую структуру папок для проекта. Вставьте компакт-диск с терминалом в корневой каталог.
mkdir -p $GOPATH/src/github.com/user/myProject cd $GOPATH/src/github.com/user/myProject touch main.go
Приложение React
Далее используйте создать приложение для реагирования. Если я не использую подмодуль git, я просто назову проект client, чтобы он находился в каталоге клиента в моем репозитории Github, содержащем как клиентский, так и серверный код. Если вы используете подмодуль git, вы можете легко сохранить отдельные репозитории для клиента и сервера, если у вас есть отдельные команды.
npx create-react-app client cd client npm start
Вот как должна выглядеть структура папок на этом этапе:
Вы не увидите папки build или node_modules, пока не выполните команды сборки yarn и yarn. Так что идите вперед, войдите в каталог клиента и выполните следующие команды:
$ cd client $ yarn $ yarn build
Сборка пряжи создаст производственную сборку, которую вы можете обслуживать со своего сервера Go.
Создайте свой сервер Go
Теперь вот несколько очень простых шаблонов для вашего файла main.go для обслуживания этих статических файлов, которые были созданы Webpack с использованием сборки yarn.
Пакеты Go
иди, получи свои зависимости для Джина:
go get -u github.com/gin-gonic/gin go get -u github.com/gin-gonic/contrib/static
Отредактируйте файл main.go
После этого запустите сервер из корневого каталога.
go run main.go
Вы должны увидеть что-то подобное в терминале, если он сработал:
Теперь перейдите в браузере к localhost: 5000, и вы должны увидеть там типичный стартовый экран приложения create response.
Почему бы не использовать порт 3000?
Webpack настроен из коробки с помощью приложения create react для использования порта 3000 для передачи изменений во время разработки. Однако вам нужно, чтобы ваш api указывал на другой порт только для разработки. Это означает, что технически у вас будет два сервера в разработке, но только один сервер со статическими файлами, созданными в процессе разработки. Затем вы добавите прокси в свой файл package.json для подключения к вашему api для вызовов ajax из внешнего интерфейса для прокси-сервера вашего go-сервера. Это очень распространенный шаблон при работе с проектами с полным стеком реагирования. Это то, что вы должны добавить в свой package.json, когда будете готовы создать API на своем сервере Go:
"proxy": "http://localhost:5000",
Этот прокси-сервер не имеет значения, когда вы работаете в производственной среде, поскольку статические файлы будут обслуживаться с вашего сервера go, а не с сервера разработки узлов. Это означает, что вызовы ajax будут обращаться к правильному порту.
Заключение
На этом мое пошаговое руководство закончено, надеюсь, оно было полезно. Когда у меня будет немного больше времени, я покажу несколько примеров написания конечных точек api на сервере go и их вызова из реакции.