当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

api.yike.io

一刻社区后端 API 源码
授权协议 Readme
开发语言 PHP
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 乔望
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Yike.io

此项目为 https://yike.io 的后端 API,基于 Laravel 5 开发。

�� 前端源码:https://github.com/overtrue/yike.io

开源中国 Gitee 仓库:

�� 此次开源只是应大家的要求,所以请不要联系我咨询任何使用问题,遇到问题请自行解决,熟读 Laravel 文档。如果你有兴趣参与改进,请直接 PR 即可。

�� 快速上手视频:053. 优秀的开源社区——yike.io

运行环境要求

开发环境部署/安装

本项目代码使用 PHP 框架 Laravel 5 开发,本地开发环境使用 Laravel Homestead

下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead,可以参照 Homestead 安装与设置 进行安装配置。

基础安装

克隆源代码

克隆源代码到本地:

> git clone git@github.com:overtrue/api.yike.io.git

配置本地的 Homestead 环境

1). 运行以下命令编辑 Homestead.yaml 文件:

homestead edit

2). 加入对应修改,如下所示:

folders:
    - map: ~/my-path/api.yike.io/ # 你本地的项目目录地址
      to: /home/vagrant/api.yike.io

sites:
    - map: api.yike.io.test
      to: /home/vagrant/api.yike.io/public

databases:
    - api_yike_io

3). 应用修改

修改完成后保存,然后执行以下命令应用配置信息修改:

homestead provision

随后请运行 homestead reload 进行重启。

安装扩展包依赖

composer install

生成配置文件

cp .env.example .env

你可以根据情况修改 .env 文件里的内容,如数据库连接、缓存、邮件设置等:

APP_URL=http://api.yike.io.test
...
DB_HOST=localhost
DB_DATABASE=api_yike_io
DB_USERNAME=homestead
DB_PASSWORD=secret

生成数据表及生成测试数据

在 Homestead 的网站根目录下运行以下命令

$ php artisan migrate --seed

初始的用户角色权限已使用数据迁移生成。

生成秘钥

$ php artisan key:generate

Passport 初始化

$ php artisan passport:install

将生成的 password grant 对应的 id 与 secret 记录下来,用于配置 env 变量。

PASSPORT_PASSWORD_CLIENT_ID=
PASSPORT_PASSWORD_CLIENT_SECRET=

如果你忘记了,就去找 oauth_clients 表中找吧。

配置 hosts 文件

echo "192.168.10.10   api.yike.io.test" | sudo tee -a /etc/hosts

其它服务配置

腾讯 007 防水墙

腾讯防水墙 注册账号,创建验证码服务(你可能需要创建两个验证,一个用于发布文章,一个用于注册账号),获取对应的配置填写到 .env 中:

# 用于发布文章的验证码
CAPTCHA_ID_PUBLISH=
CAPTCHA_SECRET_PUBLISH=

# 用于用户注册用的验证码
CAPTCHA_ID_REGISTER=
CAPTCHA_SECRET_REGISTER=
帖子搜索服务

帖子搜索基于 ElasticSearch 实现,所以你需要在任何机器上部署一个 ES 服务,然后将地址与索引名称配置到:

ELASTICSEARCH_INDEX=yike
ELASTICSEARCH_HOST=http://127.0.0.1:9200
敏感词配置

请自行寻找敏感词库,将敏感词放置于 storage/SensitiveWords.txt 中,每行一个:

敏感词1
敏感词2
...

链接入口

管理员账号请自己添加 UserSeeder 创建。

至此, 安装完成 ^_^。

扩展包使用情况

扩展包 一句话描述 本项目应用场景
overtrue/easy-sms 多网关短信发送组件 发送验证码
overtrue/laravel-emoji emoji 转换组件 帖子与评论 emoji 解析
overtrue/laravel-filesystem-qiniu 七牛 CDN SDK 帖子内容图片存储
overtrue/laravel-follow Laravel 用户关系组件 用户关注与帖子订阅
overtrue/laravel-lang Laravel 多语言 报错信息本地化
overtrue/laravel-mail-aliyun 阿里云邮件 SDK 发送通知邮件
overtrue/laravel-socialite 社交登录组件 用户使用第三方登录
overtrue/laravel-uploader Laravel 上传功能封装 帖子内容图片上传
overtrue/laravel-query-logger Laravel SQL 监听工具 开发环境查看 SQL 记录
Intervention/image 图片处理功能库 用于图片裁切
guzzlehttp/guzzle HTTP 请求套件 我也记不得,反正就是要用
predis/predis Redis 官方首推的 PHP 客户端开发包 缓存驱动 Redis 基础扩展包
mewebstudio/Purifier 用户提交的 Html 白名单过滤 帖子内容的 Html 安全过滤,防止 XSS 攻击
laravel/passport 用户授权 基于 Personal Access Token 的前后端用户认证
laravel/horizon 队列监控面板 监听队列使用情况
laravolt/avatar 生成用户头像 用户头像
sentry/sentry-laravel Sentry 报错监控 监控系统错误
spatie/laravel-activitylog 用户行为记录 个人中心的用户动态
spatie/laravel-url-signer URL 加密 用户激活链接
tamayo/laravel-scout-elastic Laravel Scout ES 驱动 帖子搜索
tucker-eric/eloquentfilter 模型字段过滤 接口字段过滤
vinkla/hashids HashID 实现 暂时好像没用到
beyondcode/laravel-self-diagnosis Laravel 基础环境检查工具 检查配置是否正确

自定义 Artisan 命令

命令行名字 说明 Cron 代码调用
es:init 初始化 ES 模板

PHP 扩展包开发

想知道如何从零开始构建 PHP 扩展包?

请关注我的实战课程,我会在此课程中分享一些扩展开发经验 —— 《PHP 扩展包实战教程 - 从入门到发布》

License

MIT

  • 1.mongoose 1.安装mongoose mongose 是一种以关系性数据库的思想来设计非关系性数据库 npm i mongoose 2.引入mongoose 并连接数据库 const mongoose = require("mongoose") mongoose.connect('mongodb://localhost/test') localhost默认使用(27017) 可用127

  • html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="socket.io.js"></script> </head> <body> <h1>Echo Test</h1> <input id="sendTxt"

  • package io; import java.io.FileInputStream; import java.io.IOException; /** * 文件输入流,用于读取文件数据 * @author ChenYi * @date 2019.08.28 */ public class FISDemo { public static void main(String[] args)

  • 字节流 文件字节输入流:FileInputStream 构造器 说明 public FileInputStream​ (File file) 创建字节输入流管道与源文件对象接通 public FileInputStream​ (String pathname) 创建字节输入流管道与源文件路径接通 FileInputStream fis = new FileInputStream(new File(

  • /* * 拼多多api接口演示 * @Author: lovefc * @Date: 2020-08-17 08:34:21 */ // 接口配置 $config = array( 'client_id' => 'xxxx', //client_id 'client_secret' => 'xxxxxx', //client_secret 'backurl' => 'xxxxx', //回调地址

  • 只考虑demo用途,不考虑任何商用。如发生纠纷,本文不负责。(不定期更新) 【1】daimajia提供的干货集中营: http://gank.io/api 【2】github的api: https://api.github.com/ 举个栗子: URL: https://api.github.com/users 【3】鸿洋大神的玩android: http://www.wanandroid.com

  • Java-API、集合、IO 学习参考资料来自博客园的:来自 https://www.cnblogs.com/fire-dong/p/13414699.html 学习资料:Java 菜鸟教程 – https://www.runoob.com/java/java-tutorial.html 1、常用API 1.1、Date java.util 包提供了 Date 类来封装当前的日期和时间。 Date

  • 个人理解 IOC:控制反转(DI依赖注入),将以前由我们自己手动创建对象的过程交给了Spring,Spring帮助我们生产对象、管理对象、管理对象和对象之间的依赖关系。降低了代码的耦合度,方便我们后期对项目做维护。 三种注入方式: 1.setter注入 2.构造器注入 3.属性注入(注解) @Autowired:默认根据类型进行匹配 @Resource:首先根据名称进行匹配,再根据类型进行匹配 自

  • //1、注册驱动类     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2、连接数据库:         Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseNam //3、创建Statemen

  • File文件对象: 一个File对象表示的就是一个文件 或者 文件夹 文件:文件有很多种     文本文件:txt、java、sql、doc     软件:exe     视频文件:mp4、avi     音频文件:mp3 创建File文件: 例如:System.out.println(文件名.createNewFile()); 删除File文件: 例如:System.out.println(文件

  • http://www.just4e.com/里面有很多文档的api。比如mysql,android,httpClient等等

  • IO 创建方式 <script src="/socket.io/socket.io.js"></script> <script> const socket = io('http://localhost'); </script> 或者使用require或import const io = require('socket.io-client'); // or with import syntax

  • 要获取一个 API,你需要找到提供该 API 的公司或机构,然后按照他们的说明注册帐户,并同意他们的 API 使用条款。通常,这些公司或机构会提供 API 文档,描述了如何使用他们的 API。一旦你完成了这些步骤,就可以使用 API 来获取数据或执行特定操作。

  • # coding: utf-8 import requests # ----------------------------执行API调用并处理响应------------------------------- url = 'https://api.github.com/search/repositories?q=language:python&sort=stars' r = requests

  • 程序员对API肯定不陌生,但刚入行的小白并不了解,网上一搜,你就会搜到好多高大上的解释,but,咱能不能用平白的话解释清楚呢,我的理解就是抄作业,抄作业虽然是老师们反对的,但是如果我们能理解的去抄,而不是不经思考的抄,那么学习效率将会事半功倍。用API就像一个学渣,啥也不会,你不让他抄,他几天也写不完,如果你把大佬的作业借给他,然后他在抄的过程中又添加了自己的思考和见解,那么就会收获很大 API(

  • 旨在为开发、产品、测试人员提供更优雅的接口管理服务 可以现在官网注册账号进行体验 依赖谷歌浏览器 及 谷歌扩展程序YApi 依赖mongodb 及 node 环境,好像是个前端老大哥写的 官网: http://yapi.demo.qunar.com/ ,好像又和去哪儿网有点什么关系 内网部署教程: https://hellosean1025.github.io/yapi/devops/index.

 相关资料
  • 6.2. 社区资源 寻求实时帮助,可以在Freenode IRC服务器的#go-nuts频道里找到其他的用户或是开发人员。 Go语言的官方邮件列表是Go Nuts。 报告Bug可以使用Go问题追踪器。 对于想及时了解开发进度的读者,可以加入另一个邮件列表golang-chenkins,这样在有人往Go代码库中checkin新代码时就会收到一封简要的邮件。

  • 3.9. 社区资源 在 Freenode IRC 上,可能有很多#go-nuts的开发人员和用户,你可以获取即时的帮助。 还可以访问Go语言的官方邮件列表 Go Nuts。 Bug可以在 Go issue tracker 提交。 对于开发Go语言用户,有令一个专门的邮件列表 golang-checkins。 这里讨论的是Go语言仓库代码的变更。 如果是中文用户,请访问:Go语言中文论坛。

  • 一面不涉及项目,聊了下之前的实习 涉及到的八股主要是按我简历上写的来问,这里记录一下没怎么答上来的 Redis分布式锁的实现,线程获得锁的过期时间是怎么设置的?过长或者过短有什么问题? watcDog的实现原理,每个锁都对应一个watcDog线程吗?你会如何设计watcDog线程? ThreadLocalMap中的key(ThreadLocal)为什么要设计为弱引用? Redis中的大key有什么

  • 个人背景:3年Java后端开发 面试历时50分钟 项目拷打20分钟 假设数据量暴增,日数据量千万级别,项目如何优化 白板写一下项目某流程的伪代码 (面试官说我代码写的有问题,后面复盘应该是异常处理吧?) 写一下项目流程中用到的一条sql, 然后一转数据库八股文 Mysql 相关 msyql 的底层是B+树,B+ 树是什么? 事务是什么? 事务的ACID,各自是是什么展开说说? 一条sql 执行的过

  • 社区能源共享 功能描述 本 合约 以纽约实验性的能源微电网为例,作为一个简单的案例进行实现。 “在总统大道的一边,五户家庭通过太阳能板发电;在街道的另一边的五户家庭可以购买对面家庭不需要的电力。而连接这项交易的就是区块链网络,几乎不需要人员参与就可以管理记录交易。”但是这个想法是非常有潜力的,能够代表未来社区管理能源系统。” 布鲁克林微电网开发商 LO3 创始人 Lawrence Orsini 说

  • 联系我们 Nacos Gitter-https://gitter.im/alibaba/nacos Nacos 微博-https://weibo.com/u/6574374908 Nacos segmentfault-https://segmentfault.com/t/nacos 邮件列表 邮件列表建议讨论任何与Nacos有关的事情。具体请看参考手册描述如何订阅我们的邮件列表。 dev-naco